本仓库包含 CVE-2021-4034 的漏洞利用代码,这是 pkexec 中的一个本地权限提升漏洞。该实现基于 CVE 披露 中描述的方法,建议你阅读该披露内容。
如果此漏洞利用在你的机器上生效,说明你的系统存在漏洞。要解决此问题,请将 polkit 更新到已修复的版本,或使用以下命令禁用 pkexec 上的 setuid 位:
$ sudo chmod a-s $(which pkexec)
根据披露信息编写此漏洞利用代码非常容易,因此请尽快为所有机器打上补丁。
要运行此漏洞利用,只需在顶层目录中运行 make。这将:
exploit.c,用于运行漏洞利用gconv/badconv.c,其中包含有效载荷./exploit如果这让你以 root 身份进入 shell,则你的系统存在漏洞。
如果你得到以下输出,说明你已使用上述 chmod 命令成功缓解了该漏洞:
Running exploit...
GLib: Cannot convert message: Could not open converter from “UTF-8” to “ZT”
pkexec must be setuid root
如果你得到的输出是 pkexec 帮助信息,则你的系统可能已经打过补丁。
此实现_应该_适用于任何存在漏洞的系统,包括 Fedora 34+ 以及某些版本的 OpenSUSE(这些系统似乎对某些实现不敏感)。具体来说,即使你的系统安装了禁用 GVFS 的 polkit 版本(在此添加),此实现也能正常工作。话虽如此,我并没有正式的计算机安全经验,它可能会报告你的系统已修补,即使你的系统仍然容易受到此漏洞或其他类似漏洞的攻击。因此,你应该确保系统保持更新,听从专业人士的建议,并且永远记得吃蔬菜。