mac3d0/CVE-2021-4034-pwnkit

GitHub: mac3d0/CVE-2021-4034-pwnkit

CVE-2021-4034(PwnKit)的教育性 PoC,演示了 polkit pkexec 的本地权限提升漏洞并附带补丁与缓解指引。

Stars: 0 | Forks: 0

# CVE-2021-4034 — PwnKit **PwnKit** 的概念验证,这是 polkit 的 `pkexec` 中的一个本地权限提升漏洞,允许任何无特权的本地用户在默认安装环境下获得完整的 root 权限。 | | | |---|---| | **CVE** | [CVE-2021-4034](https://nvd.nist.gov/vuln/detail/CVE-2021-4034) | | **组件** | polkit `pkexec` (SUID-root) | | **类别** | 本地权限提升 — 因不安全的环境变量 / `argv` 处理导致的内存损坏 | | **CVSS v3.1** | 7.8 (高危) | | **披露时间** | 2022 年 1 月 25 日由 Qualys 研究团队披露 | ## 目的 本仓库是一个**教育/研究**参考,针对一个记录详尽且已公开披露的漏洞。其旨在用于: - 研究 `pkexec` 的参数处理缺陷及其利用原语 - 在**授权**的实验室和评估环境中验证补丁状态 - 构建检测和补救手册 ## 受影响和已修复版本 实际上,**自 2009 年以来的所有 polkit 版本**在协调修复之前都受到影响。各发行版在 2022 年 1 月 25 日及之后提供了修复后的 `polkit` 软件包 —— 请应用您的供应商更新。 在您的系统上进行快速检查: ``` # 如果 pkexec 是 SUID-root 且该 package 早于修复版本,则存在漏洞 ls -l $(which pkexec) # expect: -rwsr-xr-x root root ``` ## 构建与运行(仅限授权系统) ``` gcc cve-2021-4034-poc.c -o cve-2021-4034-poc ./cve-2021-4034-poc # drops to a root shell on a vulnerable host ``` 已在 **Debian 10 (buster)** 和 **CentOS 7** 上验证通过。
运行示例 ``` user@debian:~$ id uid=1000(user) gid=1000(user) groups=1000(user),... user@debian:~$ gcc cve-2021-4034-poc.c -o cve-2021-4034-poc user@debian:~$ ./cve-2021-4034-poc # id uid=0(root) gid=0(root) groups=0(root),...,1000(user) ```
## 补救措施 - **补丁:** 将 `polkit` / `pkexec` 更新为您发行版的已修复版本。 - **缓解措施(如果您无法立即打补丁):** 移除 SUID 位 —— `chmod 0755 $(which pkexec)` — 接受失去 `pkexec` 权限委托的代价。 - **检测:** 对带有零/空 `argv` 或在 root shell 之前出现异常环境(`GCONV_PATH`、`CHARSET`、`SHELL`)的 `pkexec` 执行行为发出告警。 ## 致谢 该漏洞由 **Qualys 研究团队** 发现并负责任地披露。 - oss-security 公告: - Qualys 技术分析文章: ## ⚠️ 法律与道德声明 本代码的发布**严格仅限于教育和授权的安全测试目的**。对您不拥有或缺乏**明确书面授权**进行测试的系统运行此代码是非法的,并可能承担刑事和民事责任。作者对任何滥用行为不承担责任。请仅在您自己的实验室中或签署的委托范围内使用它。
标签:PoC, Web报告查看器, 安全, 客户端加密, 暴力破解, 本地提权, 超时处理