
In-depth analysis of CVE-2026-41651 (Pack2TheRoot), a local privilege escalation in PackageKit. Includes vulnerability breakdown, attack chain, IoCs, and mitigation guidance.
PackageKit Local Privilege Escalation (TOCTOU Race Condition)
CVSS v3.1: 8.8 (HIGH) | CWE-367 | Published: 2026-04-22
본 레포지토리는 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개의 버그가 복합적으로 작용하여, 로컬 비권한 사용자가 root 권한을 획득할 수 있는 취약점입니다.
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 생성
InstallFiles(SIMULATE=0x4, dummy) 비동기 전송 → polkit 인증 우회InstallFiles(NONE=0x0, payload) 즉시 전송 → 플래그 오염 (TOCTOU)NOT_AUTHORIZED 수신 시점엔 이미 패키지 설치 완료/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 commit 2149735 (취약) / 76cfb675 (패치) |
CVE-2026-41651-analysis/
├── README.md
└── CVE-2026-41651_분석보고서.docx # 상세 분석 보고서
공격 시도 시 아래 로그 패턴이 시스템에 기록됩니다.
# 탐지 명령어
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
# 데몬 상태 확인
systemctl status packagekit
# PackageKit 비활성화
sudo systemctl disable --now packagekit
⚠️ 비활성화 시 GNOME Software 등 GUI 패키지 관리 도구 사용 불가
본 레포지토리는 보안 연구 및 학습 목적으로 작성되었습니다.
취약점 악용 및 무단 시스템 접근은 법적 처벌을 받을 수 있으며, 모든 테스트는 본인 소유의 격리된 환경에서 수행하였습니다.
| 날짜 | 내용 |
|---|
| 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 할당, 공개 공시 |