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报告查看器, 内存污染, 子域名枚举, 暴力破解, 本地提权, 权限绕过, 漏洞分析, 状态机漏洞, 系统安全, 网络安全, 请求拦截, 路径探测, 隐私保护