> 文档中心 > 潜伏 12 年,这个漏洞危及所有主要发行版 Linux 的 root 权限

潜伏 12 年,这个漏洞危及所有主要发行版 Linux 的 root 权限

对使用 Linux 操作系统的用户来说,root 的权限是最高的。root 用户可以实现普通用户无法执行的操作。但在这周二,Linux 的 root 用户收到了一大堆坏消息——一个名为 Polkit 的系统工具中存在有 12 年历史的漏洞,这让黑客可以在大多数运行主要开源操作系统的机器上获得不受限制的 root 权限。

Polkit 以前被称为 PolicyKit,它在类 Unix 操作系统中管理系统范围的权限,为非特权进程与特权进程的安全交互提供机制。它还允许用户使用安装在每个主要的 Linux 发行版上,名为 pkexec 的 SUID-root 程序在命令后,执行高权限的命令。

安全公司 Qualys 的研究人员在去年 11 月发现了这个长期休眠的火药桶,并将其命名为 PwnKit,在大多数 Linux 发行版中打了补丁之后,这周二被披露。PwnKit 被跟踪为 CVE-2021-4034,CVSS 关键性评分为 7.8,是在 Polkit 的 pkexec 功能中发现的。

漏洞潜伏已久

与大多数操作系统一样,Linux 提供了权限级别的层次结构,用于控制应用程序或用户何时以及哪些内容可以与敏感的系统资源进行交互。该设计旨在限制当用户不被信任拥有网络管理控制权,或者应用程序被黑客入侵或恶意攻击时可能发生的损害。

研究人员发现,自 2009 年以来,pkexec 就包含了一个内存损坏漏洞。他们在周二的一份报告中表示,他们开发了一个概念验证 (PoC) 漏洞利用,并在 CentOS、Debian、Fedora 和 Ubuntu 的默认安装中获得了完全 root 权限.。他们还认为,其他 Linux 发行版“可能容易受到攻击,并且可能会被利用”。

对易受攻击的机器进行有限控制的人来说,可以利用该漏洞将权限一直提升到 root。不过利用该漏洞是微不足道的,而且根据某些说法,它是 100% 可靠的。黑客如果已经掌握了一台易受攻击机器的控制权,就可以滥用该漏洞,确保恶意的有效载荷或命令以最高的系统权限运行。研究人员表示,即使 Polkit 守护程序本身没有运行,该漏洞也可以被利用。

野外利用只是时间问题

Qualys 漏洞威胁研究总监 Bharat Jogi 在一封电子邮件中写道:最有可能的攻击场景来自内部威胁,恶意用户可以从没有任何权限升级到完全的 root 权限。从外部威胁的角度来看,如果黑客能够通过其他漏洞或密码泄露在系统上站稳脚跟,那么该黑客就可以通过此漏洞升级到完全的 root 权限。

Jogi 表示,漏洞需要对易受攻击的机器进行本地身份验证访问,如果没有这种身份验证就无法远程运行。目前,Qualys 还没有发布概念验证(PoC)漏洞代码,因为其担心代码成为黑客的福音而不是防御者的福音。PoC 代码已由另一个来源发布,研究人员表示,PwnKit 在野外被利用只是时间问题。

SANS 的渗透测试员和处理人员 Bojan Zdrnja写道:“我们预计该漏洞很快就会公开,黑客也将开始利用它——这对于任何允许用户访问 shell 的多用户系统来说尤其危险。”该研究人员说,他在Ubuntu 20.04上成功地创建了该漏洞。

图源:SANS ISC InfoSec Forums

相似漏洞不只一个

Qualys 的研究人员并不是唯一偶然发现此漏洞的人,或者说还有许多非常类似的漏洞。

2013 年,研究员 Ryan Mallon 公开报告了一个几乎完全相同的漏洞,甚至编写了一个补丁,尽管他最终没能找到利用该漏洞的方法。而在去年 6 月,Github 安全研究员 Kevin Backhouse 也报告了一个权限升级的漏洞,它得到了 CVE-2021-3560 的跟踪指定和主要 Linux 发行商的补丁。

对于此次发现的漏洞, Ryan Mallon 给出了他的回应:“笑话,我在 2013 年写过关于这个Polkit 漏洞的博客。我没能找到实际的利用途径,但确实找出了根源。”

专家建议尽快修补

目前,主要的 Linux 发行商已经发布了针对该漏洞的补丁,安全专家强烈敦促管理员优先安装补丁。无法立即修补的用户应使用 chmod 0755/usr/bin/pkexec 命令从 pkexec 中删除 SUID 位,这可以防止它在由非特权用户执行时以 root 身份运行。来自 Linux 发行商 Debian、Ubuntu 和 Red Hat 的建议如下:

Debian:CVE-2021-4034

Ubuntu:CVE-2021-4034 | Ubuntu

Red Hat:Red Hat Customer Portal - Access to 24x7 support and knowledge

如果用户想知道该漏洞是否已在其系统上被利用的话,可以检查下日志条目,这些条目将显示“在 /etc/shells 文件中找不到 SHELL 变量的值”或“环境变量的值 [...] 包含可疑内容。” 然而,Qualys 提醒人们,PwnKit 也可以被利用而不会留下任何痕迹。

参考链接:

1.A bug lurking for 12 years gives attackers root on most major Linux distros | Ars Technica

2.Ubiquitous Linux Bug: ‘An Attacker’s Dream Come True’ | Threatpost