Linux 系统与服务管理工具 Systemd 被曝存在 3 大漏洞,影响几乎所有 Linux 发行版。
Systemd 是 Linux 系统的基本构建块,它提供了对系统和服务的管理功能,以 PID 1 运行并启动系统的其它部分。目前大部分 Linux 发行版都以 Systemd 取代了原有的 System V。
安全公司 Qualys 近日发布报告称其发现 Systemd 中存在 3 个安全漏洞,并且这些漏洞已经存在 3 到 5 年时间。
3 个漏洞已经收录到 CVE,分别是内存损坏漏洞 CVE-2018-16864 与 CVE-2018-16865、信息泄露漏洞 CVE-2018-16866。其中,CVE-2018-16864 于 2013 年 4 月引入(systemd v203),并在 2016 年 2 月可利用(systemd v230),研究人员写了一个 PoC,可在 i386 上获得 eip 控制。
CVE-2018-16865 于 2011 年 12 月引入(systemd v38),在 2013 年 4 月可利用(systemd v201)。CVE-2018-16866 于 2015 年 6 月引入(systemd v221),于 2018 年 8 月无意中被修复。
研究人员为 CVE-2018-16865 和 CVE-2018-16866 写了一个 PoC,并利用它进行测试,结果花 70 分钟就可以在 amd64 上获得本地 root shell,而在 i386 上只花了 10 分钟。
“所有使用 Systemd 的 Linux 发行版都存在漏洞,并且易受到攻击”,研究人员表示:“但在 SUSE Linux Enterprise 15、openSUSE Leap 15.0 和 Fedora28 与 29 上,这些漏洞无法利用,因为它们的用户空间使用了 GCC 的 -fstack-clash-protection 进行编译。”
GCC 中的 -fstack-clash-protection 选项用于生成代码以防止堆栈冲突样式攻击(stack clash style attacks),启用此选项后,编译器将一次只分配一页堆栈空间,并在分配后立即访问每个页面。因此,它可以防止分配跳过处于操作系统保护下的任何堆栈页面。
Qualys 表示不久后将发布相关漏洞 exploit。