Kowntaewook/CVE-2026-41651-analysis

GitHub: Kowntaewook/CVE-2026-41651-analysis

对 PackageKit 本地权限提升漏洞 CVE-2026-41651 的完整技术分析报告,涵盖漏洞原理、攻击链复现、IoC 指标与应急响应建议。

Stars: 0 | Forks: 0

# CVE-2026-41651 — Pack2TheRoot 分析 ## 📌 概述 本仓库整理了关于 2026 年 4 月公开的 PackageKit 本地权限提升漏洞 **CVE-2026-41651 (Pack2TheRoot)** 的个人分析报告及研究资料。 | 项目 | 内容 | |------|------| | CVE ID | CVE-2026-41651 | | 漏洞名称 | Pack2TheRoot | | 受影响软件 | PackageKit 1.0.2 ~ 1.3.4 | | 补丁版本 | PackageKit 1.3.5 | | 攻击类型 | 本地权限提升 (LPE) | | 发现者 | Deutsche Telekom Red Team | ## 🔍 漏洞摘要 该漏洞由 PackageKit 的 `pk-transaction.c` 中的 3 个 bug 复合作用导致,使得**本地非特权用户能够获取 root 权限**。 ### Bug 链 ``` Bug 1: InstallFiles() 호출 시 cached_transaction_flags 무조건 덮어쓰기 (Line 4036) ↓ Bug 2: 상태 전이 거부 시 오염된 플래그 롤백 없이 메모리 잔존 (Line 876~881) ↓ Bug 3: pk_transaction_run() 실행 시점에 오염된 플래그 읽기 (Line 2273~2277) ↓ 결과: polkit 인증 우회 → root 권한으로 임의 패키지 설치 → SUID bash 생성 ``` ### 攻击流程 1. `InstallFiles(SIMULATE=0x4, dummy)` 异步发送 → 绕过 polkit 认证 2. `InstallFiles(NONE=0x0, payload)` 立即发送 → 标志污染 (TOCTOU) 3. 在收到 polkit `NOT_AUTHORIZED` 时,软件包安装已经完成 4. 生成 `/tmp/.suid_bash` → 获取 `euid=0(root)` ## 🖥️ 分析环境 | 项目 | 内容 | |------|------| | PoC 复现 | Docker (Ubuntu 24.04.4 LTS) | | IoC 收集 | VirtualBox (Ubuntu 22.04.5 LTS, PackageKit 1.2.5) | | 代码分析 | GitHub — PackageKit 提交 `2149735` (存在漏洞) / `76cfb675` (已打补丁) | ## 📂 文件结构 ``` CVE-2026-41651-analysis/ ├── README.md └── CVE-2026-41651_분석보고서.docx # 상세 분석 보고서 ``` ## 📋 失陷指标 (IoC) 攻击尝试时,系统中会记录以下日志模式。 ``` # 探测命令 journalctl -u packagekit | grep -i "assertion\|emitted\|failed" ``` ``` PackageKit[PID]: pk_backend_job_emit: assertion 'PK_IS_BACKEND_JOB(job)' failed PackageKit[PID]: g_signal_emit_valist: assertion 'G_TYPE_CHECK_INSTANCE(instance)' failed PackageKit[PID]: GLib-Object:CRITICAL: g_object_unref: assertion 'G_IS_OBJECT(object)' failed PackageKit[PID]: backend job failed PackageKit[PID]: emit transaction failed PackageKit[PID]: daemon stop ← 크래시 PackageKit[PID]: daemon start ← 자동 재시작 ``` ``` # SUID 文件探测 find /tmp -perm -4000 -type f 2>/dev/null # → 若存在 /tmp/.suid_bash 则需立即响应 ``` ## 🛡️ 应对措施 ### 应用补丁(推荐) ``` # Ubuntu / Debian sudo apt update && sudo apt upgrade packagekit # RHEL / Fedora sudo dnf update PackageKit ``` ### 检查是否存在漏洞 ``` # 版本确认 (若为 1.3.4 及以下版本则存在漏洞) dpkg -l | grep -i packagekit # Debian/Ubuntu rpm -qa | grep -i PackageKit # RHEL/Fedora # Daemon 状态确认 systemctl status packagekit ``` ### 临时缓解措施(打补丁前) ``` # PackageKit 禁用 sudo systemctl disable --now packagekit ``` ## 📅 时间线 | 日期 | 内容 | |------|------| | 2026-04-08 | Deutsche Telekom Red Team → 首次向 Red Hat/PackageKit 报告 | | 2026-04-10 | PackageKit 维护者接收并确认复现 | | 2026-04-13 | 起草未公开的补丁 | | 2026-04-15 | 向 Canonical 共享漏洞信息 | | 2026-04-19 | 私下通报发行版供应商 | | 2026-04-22 | 发布 PackageKit 1.3.5,分配 CVE,公开披露 | ## 🔗 参考资料 - [CVE 官方页面](https://www.cve.org/CVERecord?id=CVE-2026-41651) - [GitHub 安全公告](https://github.com/PackageKit/PackageKit/security/advisories/GHSA-f55j-vvr9-69xv) - [Deutsche Telekom 原始公告](https://github.security.telekom.com/2026/04/pack2theroot-linux-local-privilege-escalation.html) - [NVD 详情](https://nvd.nist.gov/vuln/detail/CVE-2026-41651) - [补丁提交 (76cfb675)](https://github.com/PackageKit/PackageKit/commit/76cfb675fb31acc3ad5595d4380bfff56d2a8697) - [PoC 仓库 (Vozec)](https://github.com/Vozec/CVE-2026-41651) ## ⚠️ 免责声明 本仓库仅用于**安全研究及学习目的**编写。 滥用漏洞及未经授权访问系统将面临法律惩罚,所有测试均在本人拥有的隔离环境中进行。
标签:0day分析, CVE-2026-41651, Docker复现, IoC, LPE, Pack2TheRoot, PackageKit, PoC, Polkit, Red Team, SUID, TOCTOU, Web报告查看器, 内存污染, 子域名枚举, 暴力破解, 本地提权, 权限绕过, 漏洞分析, 状态机漏洞, 系统安全, 网络安全, 请求拦截, 路径探测, 隐私保护