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** 上验证通过。
## 补救措施
- **补丁:** 将 `polkit` / `pkexec` 更新为您发行版的已修复版本。
- **缓解措施(如果您无法立即打补丁):** 移除 SUID 位 ——
`chmod 0755 $(which pkexec)` — 接受失去 `pkexec` 权限委托的代价。
- **检测:** 对带有零/空 `argv` 或在 root shell 之前出现异常环境(`GCONV_PATH`、`CHARSET`、`SHELL`)的 `pkexec` 执行行为发出告警。
## 致谢
该漏洞由 **Qualys 研究团队** 发现并负责任地披露。
- oss-security 公告:
- Qualys 技术分析文章:
## ⚠️ 法律与道德声明
本代码的发布**严格仅限于教育和授权的安全测试目的**。对您不拥有或缺乏**明确书面授权**进行测试的系统运行此代码是非法的,并可能承担刑事和民事责任。作者对任何滥用行为不承担责任。请仅在您自己的实验室中或签署的委托范围内使用它。
运行示例
``` 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) ```标签:PoC, Web报告查看器, 安全, 客户端加密, 暴力破解, 本地提权, 超时处理