售前咨询
技术支持
渠道合作

修复CVE-2016-5195漏洞的解决方案

漏洞简介:

CVE-2016-5195这个漏洞是linux内核级的本地提权漏洞,Linux内核的内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞,导致可以破坏私有只读内存映射。一个低权限的本地用户能够利用此漏洞获取其他只读内存映射的写权限,有可能进一步导致提权漏洞。

漏洞危害:

黑客可以通过远程入侵获取低权限用户后,在服务器本次利用该漏洞在全版本Linux系统上实现本地提权,从而获取到服务器root权限。

漏洞利用条件:

黑客可以通过远程入侵获取低权限用户后,才能进一步在操作系统本地利用该漏洞。

影响范围:

1、linux内核6.22以后的版本都受影响

使用以下方式自查是否存在此漏洞:

使用uname –a查看 Linux 系统的内核版本,如:

Linux AYxxxx 2.6.32-431.23.3.el6.x86_64 #1 SMP Thu Jul 31 17:20:51 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

上述内核版本2.6.32-431.23.3.el6.x86_64受漏洞影响。

Linux AYxxxx 2.6.18-308.el5 #1 SMP Tue Feb 21 20:06:06 EST 2012 x86_64 x86_64 x86_64 GNU/Linux

上述内核版本2.6.18-308.el5不受漏洞影响。

2、阿里云安全团队在第一时间针对 ECS 提供的 Linux 操作系统镜像进行测试,详细的受影响范围如下表:

漏洞修复方案

因为涉及到操作系统内核的升级,强烈建议:正确关闭正在运行的服务,并做好业务数据备份工作。同时创建服务器磁盘快照,避免修复失败造成不可逆的影响。

如果服务器安装了第三方的防护软件有可能会导致内核升级不成功,例如:云锁、安全狗,建议您先卸载后升级内核成功后再安装启用。

1.CentOS 5/6/7 系列操作系统

阿里云已经更新了CentOS 5/6/7Aliyun mirror源,可以直接在默认配置下,可以更新软件列表,随后一键升级内核:

1).检查是否有内核升级包:yum check-update |grep kernel

2).升级内核:yum update kernel

3).确认下新版本的内核或 initrd/initramfs 是否有xen-vbd和virtio_blk驱动:

lsinitrd /boot/initramfs-2.6.32-642.6.2.el6.x86_64.img |grep -i -E ‘xen-blkfront|virtio_blk’

查看补丁样例:

#lsinitrd /boot/initramfs-2.6.32-642.6.2.el6.x86_64.img |grep -i -E ‘xen-blkfront|virtio_blk’(具体是版本而定,可以到cd /boot/ 目录下面查看对应的initrd文件(Centos5.1)或initramfs文件(centos6/7))

# lsinitrd /boot/initramfs-2.6.32-642.6.2.el6.x86_64.img |grep  -i -E ‘xen-blkfront|virtio_blk’

-rwxr–r–   1 root     root        23448 Nov  4 14:51 lib/modules/2.6.32-642.6.2.el6.x86_64/kernel/drivers/block/virtio_blk.ko

-rwxr–r–   1 root     root        54888 Nov  4 14:51 lib/modules/2.6.32-642.6.2.el6.x86_64/kernel/drivers/block/xen-blkfront.ko

4).如果有,则可以重启

5).如果没有,则需要给initrd/initramfs安装驱动,然后执行第三步后重启:

centos 5:

#mkinitrd -f –allow-missing \

–with=xen-vbd  –preload=xen-vbd \

–with=xen-platform-pci –preload=xen-platform-pci \

–with=virtio_blk –preload=virtio_blk \

–with=virtio_pci –preload=virtio_pci \

–with=virtio_console –preload=virtio_console \

–with=hvc_console –preload=hvc_console \

$target_initrd $vmlinuz

(具体是版本而定,可以到cd /boot/ 目录下面查看,替换$target_initrd $vmlinuz)

centos 6、7 :

#mkinitrd -f –allow-missing \

–with=xen-blkfront –preload=xen-blkfront \

–with=virtio_blk –preload=virtio_blk \

–with=virtio_pci –preload=virtio_pci \

–with=virtio_console –preload=virtio_console \

$target_initrd $vmlinuz

安装驱动样例(本样例以Centos6.8 64bit为准):

#mkinitrd -f –allow-missing –with=xen-blkfront –preload=xen-blkfront –with=virtio_blk –preload=virtio_blk –with=virtio_pci –preload=virtio_pci –with=virtio_console –preload=virtio_console initramfs-2.6.32-642.6.2.el6.x86_64.img 2.6.32-642.6.2.el6.x86_64

具体是版本而定,可以到cd /boot/ 目录下面查看,替换$target_initrd $vmlinuz

6).执行第三步后,查看是否有驱动,然后重启系统

# lsinitrd /boot/initramfs-2.6.32-642.6.2.el6.x86_64.img |grep -i -E ‘xen-blkfront|virtio_blk’

-rwxr–r–   1 root     root        23448 Nov  4 16:21 lib/modules/2.6.32-642.6.2.el6.x86_64/kernel/drivers/block/virtio_blk.ko

-rwxr–r–   1 root     root        54888 Nov  4 16:21 lib/modules/2.6.32-642.6.2.el6.x86_64/kernel/drivers/block/xen-blkfront.ko

7).查看升级后的内核版本:uname -a或者rpm -q –changelog kernel | grep ‘CVE-2016-5195’,也可以使用云盾安骑士验证

注:更新完毕后可能会安装两个内核,但不影响系统运行。

# uname -a

Linux iZ2ze1zpafrqftmdfh0b3cZ 2.6.32-642.6.2.el6.x86_64 #1 SMP Wed Oct 26 06:52:09 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

或者

#rpm -q –changelog kernel | grep ‘CVE-2016-5195’

– [mm] close FOLL MAP_PRIVATE race (Larry Woodman) [1385116 1385117] {CVE-2016-5195}

Ubuntu 系列操作系统

阿里云已经更新了Ubuntu mirror源,可以直接在默认配置下,可以更新软件列表,随后一键升级内核:

1).查看是否有更新包:dpkg -l | grep linux

2).更新包列表:apt-get updateor apt update

3).升级内核:

Ubuntu12.04版本:apt-get install linux-generic

Ubuntu14.04版本:apt-get upgrade或apt upgrade

4).然后重启系统

5).查看升级后的内核版本:uname -a或者zcat /usr/share/doc/linux-image-3.13.0-101-generic/changelog.Debian.gz | grep -i ‘CVE-2016-5195’,也可以使用云盾安骑士验证

注:更新完毕后可能会安装两个内核,但不影响系统运行。

# uname -a

Linux iZ2ze1zpaXXXXb3cZ 2.6.32-642.6.2.el6.x86_64 #1 SMP Wed Oct 26

或者

# zcat /usr/share/doc/linux-image-3.13.0-101-generic/changelog.Debian.gz | grep -i ‘CVE-2016-5195’

* CVE-2016-5195

3.Debian 系列操作系统

阿里云已经更新了Ubuntu mirror源,可以直接在默认配置下,可以更新软件列表,随后一键升级内核:

1).查看是否有更新包:dpkg -l | grep linux

2).更新包列表:apt-get update

3).升级内核:apt-get upgrade

4).然后重启系统

5).查看升级后的内核版本:uname -a或者zcat /usr/share/doc/linux-image-3.16.0-4-amd64/changelog.Debian.gz | grep -i ‘CVE-2016-5195’,也可以使用云盾安骑士验证

注:更新完毕后可能会安装两个内核,但不影响系统运行。

# uname -a

Linux iZ2ze1zpaXXXXb3cZ 2.6.32-642.6.2.el6.x86_64 #1 SMP Wed Oct 26 06:52:09 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

或者

# zcat /usr/share/doc/linux-image-3.16.0-4-amd64/changelog.Debian.gz |grep -i ‘CVE-2016-5195’

(CVE-2016-5195)

4.SUSE Linux Enterprise Server 系列操作系统(仅限购买SLES企业服务用户)

1).使用http://mirrors.aliyuncs.com/SLES/SLES12-SP1-Updates/sle-12-x86_64/ 源进行更新,可以编辑vim /etc/zypp/repos.d/SLES12-SP1-Updates.repo关闭其他更新源,即:修改http://mirrors.aliyun.com/SLES/SLES12-SP1-Updates/sle-12-x86_64/ enabled=0,然后更新列表:zypper refresh

2).安装最新内核:zypper install kernel-default xen-kmp-default

3).确认下新版本的内核或 initrd / initramfs 是否有xen-vbd和virtio_blk驱动:

lsinitrd /boot/initrd-3.12.62-60.64.8-default | grep -i -E ‘xen-vbd|virtio_blk’

查看补丁样例:

lsinitrd /boot/initrd-3.12.62-60.64.8-default | grep -i -E ‘xen-vbd|virtio_blk’

Arguments: –logfile –force –force-drivers ‘xen-vbd xen-vnif xen-platform-pci.ko virtio virtio_console virtio_net virtio_blk virtio_pci’

-rw-r–r–   1 root     root        55335 Sep 23 15:55 lib/modules/3.12.62-60.62-default/updates/blkfront/xen-vbd.ko

-rw-r–r–   1 root     root        31591 Oct 19 04:40 lib/modules/3.12.62-60.64.8-default/kernel/drivers/block/virtio_blk.ko

lrwxrwxrwx   1 root     root           61 Nov  7 14:17 lib/modules/3.12.62-60.64.8-default/weak-updates/updates/blkfront/xen-vbd.ko -> ../../../../3.12.62-60.62-default/updates/blkfront/xen-vbd.ko

4).如果有,可以重启

5).如果没有,则需要给 initrd / initramfs 安装驱动,然后执行第三步后重启:

mkinitrd -k /boot/vmlinuz-3.12.62-60.64.8-default -i /boot/initrd-3.12.62-60.64.8-default(具体版本根据实际安装为准)

6).查看升级后的内核版本:uname -a或者rpm -q –changelog kernel | grep ‘CVE-2016-5195’,也可以使用云盾安骑士验证

注:更新完毕后可能会安装两个内核,但不影响系统运行。

# uname -a

Linux iZwz9cl4i8oy1pmjw7g4rxZ 3.12.62-60.64.8-default #1 SMP Tue Oct 18 12:21:38 UTC 2016 (42e0a66) x86_64 x86_64 x86_64 GNU/Linux

或者

# rpm -q –changelog kernel-default | grep ‘CVE-2016-5195’

– patches.fixes/mm-remove-gup_flags-FOLL_WRITE-games-from-__get_user_pages.patch: (bnc1004418, CVE-2016-5195).

5.Open SUSE 系列操作系统

1).更新列表:zypper refresh

2).安装最新内核:zypper install kernel-default xen-kmp-default

3).确认下新版本的内核或 initrd / initramfs 是否有xen-vbd和virtio_blk驱动

lsinitrd /boot/initrd-3.12.62-55-default | grep -i -E ‘xen-vbd|virtio_blk’

样例:

# lsinitrd /boot/initrd-3.12.62-55-default | grep -i -E ‘xen-vbd|virtio_blk’

lib/modules/3.12.62-55-default/kernel/drivers/block/virtio_blk.ko

lib/modules/3.12.62-55-default/updates/blkfront/xen-vbd.ko

4).如果有,可以重启

5).如果没有,则需要给 initrd / initramfs 安装驱动,然后执行第三步后重启:

# mkinitrd -k /boot/vmlinuz-3.12.62-55-default -i /boot/initrd-3.12.62-55-default(具体版本根据实际安装为准)

6).查看升级后的内核版本:uname -a或者rpm -q –changelog kernel | grep ‘CVE-2016-5195’,也可以使用云盾安骑士验证

注:更新完毕后可能会安装两个内核,但不影响系统运行。

# uname -a

Linux iZwz9XXXshamswbvrZ 3.12.62-55-default #1 SMP Thu Oct 20 08:47:11 UTC 2016 (b0aa9a6) x86_64 x86_64 x86_64 GNU/Linux

或者

# rpm -q –changelog kernel-default | grep ‘CVE-2016-5195’

– patches.fixes/mm-remove-gup_flags-FOLL_WRITE-games-from-__get_user_pages.patch: (bnc1004418, CVE-2016-5195).

6.CoreOS 系列操作系统

安装所有可用更新,包括新内核:

update_engine_client -update

重启机器

7.重要提示

1). 对于阿里云官方发布的其余系列的操作系统,Linux 官方正在研发漏洞对应的系统补丁,待补丁发布后,将系统更新到最新版本即可修复漏洞。

2). 对于自定义镜像用户可以关注操作系统原厂商更新状态,自己根据自身业务判断升级内核,修复该漏洞。


SSL证书是HTTP明文协议升级HTTPS加密协议的重要渠道,是网络安全传输的加密到通道。关于更多SSL证书的资讯,请关注GDCA(数安时代)。GDCA致力于网络信息安全,已通过WebTrust 的国际认证,是全球可信任的证书签发机构。GDCA专业技术团队将根据用户具体情况为其提供最优的产品选择建议,并针对不同的应用或服务器要求提供专业对应的HTTPS解决方案。

上一篇:

下一篇:

相关文章