CVE-2026-41651
PackageKit이 트랜잭션 플래그에 대한 TOCTOU 레이스에 취약하여 루트 권한으로 임의 패키지 설치가 가능함
- 게시됨
- 2026. 4. 22.
- 업데이트됨
- 2026. 7. 15.
- CNA 할당 중
- GitHub_M
- 증거 관찰됨
- 2026. 8. 25.
기본 CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H낮음 · 다음 30일
- 백분위수
- 39.0%
- 모델 날짜
- 2026. 9. 21.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
요약
PackageKit은 사용자가 크로스 배포판, 크로스 아키텍처 API를 통해 패키지를 안전하게 관리할 수 있게 해주는 D-Bus 추상화 계층입니다. 1.0.2부터 1.3.4까지의 PackageKit 버전은 트랜잭션 플래그에 대한 TOCTOU(검사 시점/사용 시점) 경쟁 조건에 취약하여, 권한이 없는 사용자가 루트 권한으로 패키지를 설치할 수 있고 이를 통해 로컬 권한 상승으로 이어질 수 있습니다. 이 문제는 1.3.5 버전에서 패치되었습니다. 로컬의 권한이 없는 사용자는 인증 없이 루트 권한으로 임의의 RPM 패키지를 설치할 수 있으며, 여기에는 RPM 스크립틀릿 실행도 포함됩니다. 이 취약점은 `transaction->cached_transaction_flags`에 대한 TOCTOU 경쟁 조건과, 불법적인 역방향 전환을 조용히 폐기하면서 손상된 플래그를 그대로 남겨두는 무음 상태 머신 가드가 결합된 것입니다. `src/pk-transaction.c`에는 세 가지 버그가 존재합니다: 1. 무조건적인 플래그 덮어쓰기(4036행): `InstallFiles()`는 트랜잭션이 이미 승인/시작되었는지 확인하지 않고 호출자가 제공한 플래그를 `transaction->cached_transaction_flags`에 기록합니다. 두 번째 호출은 트랜잭션이 RUNNING 상태인 동안에도 플래그를 무조건 덮어씁니다. 2. 무음 상태 전환 거부(873–882행): `pk_transaction_set_state()`는 역방향 상태 전환(예: `RUNNING` → `WAITING_FOR_AUTH`)을 조용히 폐기하지만, 1단계의 플래그 덮어쓰기는 이미 발생한 상태입니다. 트랜잭션은 손상된 플래그를 가진 채 계속 실행됩니다. 3. 실행 시점의 늦은 플래그 읽기(2273–2277행): 스케줄러의 유휴 콜백은 승인 시점이 아닌 디스패치 시점에 cached_transaction_flags를 읽습니다. 승인과 실행 사이에 플래그가 덮어써진 경우, 백엔드는 공격자의 플래그를 보게 됩니다.
소스
11CVE-2026-41651
# CVE-2026-41651 개념 증명 익스플로잇 CVE-2026-41651에 대한 개념 증명 익스플로잇으로, PackageKit의 TOCTOU 로컬 권한 상승 취약점이며, 기술 분석, 탐지 로직, 그리고 수정 지침을 포함합니다.
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.