简单说,这是一个存在了5年,从Linux 2.6.31-rc3起便存在的本地代码执行漏洞,导致问题,攻击者会获取 root shell 直到今年5月3日才被修复。
CVE-2014-0196
A race condition in the pty (pseudo terminal) layer (writer buffer handling), which could be used by attackers to corrupt kernel memory and cause denial of service (system crash) or privilege escalation.
详细的问题描述见 SUSE Bugzillaticket其中包含两个 PoC 攻击代码。
漏洞是 SUSE 的 Jiri Slaby 发现并修复的,见patch就三行代码 :-D
八卦一下 Jiri 其人,第一次注意到他的名字是 SUSE 宣布kGraftLive Kernel Patch 项目时,他是主力开发者。从30周介绍30位内核开发者系列来看,他已是资深的 Linux 内核开发者,且擅长 Serial 和 TTY 层,是代码清道夫,所以发现drivers/tty/n_tty.c里的问题也顺理成章。
言归正传,受此漏洞影响最大的莫过于共享 web 主机了,服务提供商若不及时给内核打补丁,就会被攻击者利用获得本地 root shell 爆菊。
出于好奇,用第二个 PoC 攻击代码测试了一下,结果如下:
Arch Linux 上测试结果见图,注意这是在虚拟机里测的,没用自己的笔记本怕 oops 或 panic 系统崩溃掉 ;-D
查了一下发现:
对内核安全漏洞的响应速度,是决定发行版选择的重要原因之一。大家可以参考。
Ksplice 在5月7日和8日,分别在后台自动给运行中的 Ubuntu 14.04 和 Ubuntu 12.04 内核打上了 CVE-2014-0196 补丁,直接免疫(其实一个人用不存在问题)。后者是 Digital Ocean KVM VPS 已经跑了290天,准备满一年升级到下一个 LTS ;-) 能免费用 Ksplice 是当初 VPS 选 Ubuntu Server 而非 Debian 稳定版的原因,看图,不解释了。
最后,真不是给Ksplice打广告。目前kGraft和kpatch之争局势还不明了,只能靠它了。希望很快能见分晓,两者能合作进入 mainline 自然最好。