今天我决定按照以下步骤修补我的服务器的肮脏的 c0w 漏洞。
它运行的是 Ubuntu 12.04 LTS:
uname -rv
3.2.0-87-generic #125-Ubuntu SMP Fri Jun 19 08:25:10 UTC 2015
uname -a
Linux webdev 3.2.0-87-generic #125-Ubuntu SMP Fri Jun 19 08:25:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
因此,由于 3.2.0-113.155 之前的每个版本都受到影响,我运行了以下命令:
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
一切顺利,我重新启动了:
sudo reboot
但是现在我检查我的版本,它并没有改变:
uname -rv
3.2.0-87-generic #125-Ubuntu SMP Fri Jun 19 08:25:10 UTC 2015
我是不是漏掉了什么?我仔细检查了一下,升级过程中没有出现任何错误。
根据评论/答案进行编辑
我运行sudo update-grub
后得到以下信息:
Generating grub.cfg ...
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-3.2.0-87-generic
Found initrd image: /boot/initrd.img-3.2.0-87-generic
Found linux image: /boot/vmlinuz-3.2.0-86-generic
Found initrd image: /boot/initrd.img-3.2.0-86-generic
Found linux image: /boot/vmlinuz-3.2.0-85-generic
Found initrd image: /boot/initrd.img-3.2.0-85-generic
Found linux image: /boot/vmlinuz-3.2.0-84-generic
Found initrd image: /boot/initrd.img-3.2.0-84-generic
Found linux image: /boot/vmlinuz-3.2.0-83-generic
Found initrd image: /boot/initrd.img-3.2.0-83-generic
Found linux image: /boot/vmlinuz-3.2.0-82-generic
Found initrd image: /boot/initrd.img-3.2.0-82-generic
Found linux image: /boot/vmlinuz-3.2.0-80-generic
Found initrd image: /boot/initrd.img-3.2.0-80-generic
Found linux image: /boot/vmlinuz-3.2.0-79-generic
Found initrd image: /boot/initrd.img-3.2.0-79-generic
Found linux image: /boot/vmlinuz-2.6.32-38-server
Found initrd image: /boot/initrd.img-2.6.32-38-server
Found memtest86+ image: /memtest86+.bin
done
重启后仍然没有变化。
运行dpkg --get-selections | grep linux
并得到:
libselinux1 install
linux-firmware install
linux-headers-3.2.0-101 install
linux-headers-3.2.0-101-generic install
linux-headers-3.2.0-102 install
linux-headers-3.2.0-102-generic install
linux-headers-3.2.0-104 install
linux-headers-3.2.0-104-generic install
linux-headers-3.2.0-106 install
linux-headers-3.2.0-106-generic install
linux-headers-3.2.0-107 install
linux-headers-3.2.0-107-generic install
linux-headers-3.2.0-109 install
linux-headers-3.2.0-109-generic install
linux-headers-3.2.0-110 install
linux-headers-3.2.0-110-generic install
linux-headers-3.2.0-111 install
linux-headers-3.2.0-111-generic install
linux-headers-3.2.0-113 install
linux-headers-3.2.0-113-generic install
linux-headers-3.2.0-86 install
linux-headers-3.2.0-86-generic install
linux-headers-3.2.0-87 install
linux-headers-3.2.0-87-generic install
linux-headers-3.2.0-89 install
linux-headers-3.2.0-89-generic install
linux-headers-3.2.0-91 install
linux-headers-3.2.0-91-generic install
linux-headers-3.2.0-92 install
linux-headers-3.2.0-92-generic install
linux-headers-3.2.0-93 install
linux-headers-3.2.0-93-generic install
linux-headers-3.2.0-94 install
linux-headers-3.2.0-94-generic install
linux-headers-3.2.0-95 install
linux-headers-3.2.0-95-generic install
linux-headers-3.2.0-96 install
linux-headers-3.2.0-96-generic install
linux-headers-3.2.0-97 install
linux-headers-3.2.0-97-generic install
linux-headers-3.2.0-98 install
linux-headers-3.2.0-98-generic install
linux-headers-3.2.0-99 install
linux-headers-3.2.0-99-generic install
linux-headers-server install
linux-image-2.6.32-38-server install
linux-image-3.2.0-79-generic install
linux-image-3.2.0-80-generic install
linux-image-3.2.0-82-generic install
linux-image-3.2.0-83-generic install
linux-image-3.2.0-84-generic install
linux-image-3.2.0-85-generic install
linux-image-3.2.0-86-generic install
linux-image-3.2.0-87-generic install
linux-libc-dev install
util-linux install
好像该列表中没有新的 Linux 映像。
但是,当我运行sudo apt-cache policy linux-image-generic
它时,将新版本列为候选项(它是法语,但你明白的):
linux-image-generic:
Installé : (aucun)
Candidat : 3.2.0.113.129
Table de version :
3.2.0.113.129 0
500 http://fr.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
3.2.0.23.25 0
500 http://fr.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
答案1
好的,我终于成功升级了。
以下是我的做法。
根据罗恩对我的回答的评论,我决定运行:
sudo apt-get install linux-image-generic
由于我/boot
已满,所以失败了,因此我通过运行以下命令删除了旧版本:
sudo dpkg -r linux-image-3.2.0-79-generic
sudo dpkg -r linux-image-3.2.0-80-generic
sudo dpkg -r linux-image-3.2.0-82-generic
sudo dpkg -r linux-image-3.2.0-84-generic
sudo dpkg -r linux-image-3.2.0-85-generic
之后我跑了:
sudo apt-get upgrade -f
然后重启:
sudo reboot
现在,我正在运行一个“安全”版本:
uname -rv
3.2.0-113-generic #155-Ubuntu SMP Tue Oct 18 17:53:59 UTC 2016
但是,我仍然不知道为什么运行以下命令不起作用:
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
答案2
您uname -rv
当前的内核显示为:
3.2.0-87-generic #125-Ubuntu SMP Fri Jun 19 08:25:10 UTC 2015
日期是2015年6月19日——一岁多了!
根据这个:允许本地用户获得管理访问权限的肮脏 COW 错误是什么?您应该使用3.2.0-113
我不确定您错过了多少个内核升级,但可能在 16 个月内错过很多(从 113 中减去 87 = 26)。
因为 Linux 世界中的每个人都已经听说过,所以Dirty COW
你应该把版本3.2.0-113尽快。在找出内核未升级的原因之前,您可以手动安装内核。您没有使用,uname -a
所以不知道您使用的是 32 位还是 64 位,但我会提供这两种系统的说明。
为 Ubuntu 32 位通用版安装 Dirty COW 修复程序
去:精确更新/i386/linux-image-3.2.0-113并选择您所在国家/地区的链接下载文件。您的浏览器可能会向您发出警告消息。在 Chrome 中,单击Keep
。
该文件通常会下载到您的~/Downloads
目录中,但您的浏览器可由用户配置为任何位置。我们假设它是~/Downloads
这样的,因此请输入以下内容:
cd ~/Downloads
sudo dpkg -i linux-image-3.2.0-113-generic_3.2.0-113.155_i386.deb
rm linux-image-3.2.0-113-generic_3.2.0-113.155_i386.deb
sudo reboot
为 Ubuntu 64 位通用版安装 Dirty COW 修复程序
去:精确更新/amd64/linux-image-3.2.0-113并选择您所在国家/地区的链接下载文件。您的浏览器可能会向您发出警告消息。在 Chrome 中,单击Keep
。
该文件通常会下载到您的~/Downloads
目录中,但您的浏览器可由用户配置为任何位置。我们假设它是~/Downloads
这样的,因此请输入以下内容:
cd ~/Downloads
sudo dpkg -i linux-image-3.2.0-113-generic_3.2.0-113.155_amd64.deb
rm linux-image-3.2.0-113-generic_3.2.0-113.155_amd64.deb
sudo reboot
重新启动后,输入uname -a
以确认您使用的是内核版本3.2.0-113
。
答案3
运行命令后,GRUB 可能未正确更新。
执行:sudo update-grub
。重新启动系统并再次检查。
如果旧内核再次启动,请检查新内核是否已安装:
执行以下命令:dpkg --get-selections | grep linux