如何修复Linux Dirty COW 0日漏洞CVE-2016-5195

时间:2019-11-20 08:53:21  来源:igfitidea点击:

如何修复Linux内核中的特权提升漏洞(CVE-2016-5195)?

  • Ubuntu Linux:CVE-2016-5195。
  • Debian Linux:CVE-2016-5195。
  • RHEL/CentOS Linux:CVE-2016-5195
  • Suse企业Linux:CVE-2016-5195

如何修复Dirty COW漏洞?
什么是CVE-2016-5195漏洞?

如何检测系统是否有CVE-2016-5195漏洞Dirty COW?

在RHEL/CentOS Linux中,使用以下脚本:

$ wget https://access.redhat.com/sites/default/files/rh-cve-2016-5195_2.sh
$ bash rh-cve-2016-5195_2.sh

如果是所有其他版本的Linux,使用PoC

下载PoC:

$ wget https://raw.githubusercontent.com/dirtycow/dirtycow.github.io/master/dirtyc0w.c

使用root执行

$ sudo -s
# echo this is not a test > foo

使用普通用户执行:

$ gcc -lpthread dirtyc0w.c -o dirtyc0w
### ***[ If you get an error while compiling code, try ***] ###
$ gcc -pthread dirtyc0w.c -o dirtyc0w
$ ./dirtyc0w foo m00000000000000000
`mmap 56123000 madvise 0 procselfmem 1800000000`
$ cat foo
m00000000000000000

如何在Linux上修复CVE-2016-5195?

因为属于内核漏洞,所以需要升级内核。

查看当前内核版本:

$ uname -a
$ uname -mrs

在Debian或Ubuntu Linux上修复Dirty COW漏洞

$ sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

重启服务器:

$ sudo reboot

在RHEL/CentOS Linux 5.x/6.x/7.x上修复Dirty COW漏洞

$ sudo yum update
$ sudo reboot

RHEL/CentOS Linux 4.x

$ sudo up2date -u
$ sudo reboot

在Suse Enterprise Linux或Opensuse Linux上修复Dirty COW漏洞

应用所有补丁程序:

# zypper patch
# reboot

验证

重启后确认新内核版本:

$ uname -a
$ uname -r
$ uname -mrs