一个在 polkit 中存在 12 年的漏洞允许获取 root 权限 

前几天有消息爆出 Qualys 研究团队在 polkit pkexec 中发现内存损坏漏洞,一个根 SUID 程序,默认安装在所有主要的 Linux 发行版上。

这个漏洞 容易被利用 通过在其默认配置中利用此漏洞,允许任何非特权用户在易受攻击的主机上获得完全的 root 权限。

波尔基特 (以前称为 PolicyKit) 是系统范围权限控制的组件 在类 Unix 操作系统上。 它为非特权进程与特权进程通信提供了一种有组织的方式,此外,还可以使用 polkit 运行具有提升权限的命令,使用 pkexec 命令后跟它打算运行的命令(具有 root 权限)。

关于漏洞

脆弱性 在于pkexec, PUES 您的代码包含指针处理错误, 其中一些 最终引用不应该的内存区域. 通过利用此漏洞,几乎可以立即获得管理员权限。

该漏洞编号为 CVE-2021-4034,CVSS 得分为 7,8,Qualys 团队在一篇博文中解释说:

pkexec 漏洞为攻击者打开了获取 root 权限的大门。 他说,Qualys 研究人员已经表明,Ubuntu、Debian、Fedora 和 CentOS 的默认安装被利用,其他 Linux 发行版也被认为是易受攻击的。

“成功利用此漏洞允许任何非特权用户在易受攻击的主机上获得 root 特权。 Qualys 安全研究人员能够独立验证漏洞、开发漏洞利用程序并在默认安装的 Ubuntu、Debian、Fedora 和 CentOS 上获得完全的 root 权限。 其他 Linux 发行版可能容易受到攻击和利用。 此漏洞已被隐藏超过 12 年,并影响自 2009 年 8 月首次发布以来的所有 pkexec 版本(确认 c3c83d1,“添加 pkexec(XNUMX) 命令”)。

“一旦我们的研究团队确认了该漏洞,Qualys 就承诺负责任地披露漏洞,并与供应商和开源发行版协调以宣布该漏洞。”

当 main() 函数出现问题 通过 pkexec 处理命令行参数 而且 argc 为零。 该函数仍然尝试访问参数列表并最终尝试使用 rgvvoid(命令行参数字符串的 ARGument 向量)。 结果,内存被越界读取和写入,攻击者可以利用它来注入可能导致加载任意代码的环境变量。

可以重新引入这些变量的事实使代码易受攻击。 至少 Qualys 提供的利用技术(将 GCONV_PATH 变量注入 pkexec 环境以以 root 身份运行共享库)会在日志文件中留下痕迹。

在安全公告中,红帽发表了以下声明:

“Red Hat 注意到 pkexec 中发现的一个漏洞,该漏洞允许经过身份验证的用户执行特权提升攻击。”

“客户面临的主要风险是非特权用户有可能获得受影响系统的管理特权。 攻击者必须拥有目标系统的登录权限才能进行攻击。”

值得一提的是 该漏洞已在 2013 年被发现 并且已经在一篇博文中详细描述过,即使没有提供 PoC:

“大声笑,我在 2013 年写过这个 polkit 漏洞。我找不到实际的利用路径,但我确实找到了根本原因。”

最后,如果您有兴趣了解它,您可以在 以下链接。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。