Pack2TheRoot (CVE-2026-41651): Linux를 손상시키는 PackageKit 취약점

키 포인트:
  • 이 오류는 D-Bus 트랜잭션 관리 내의 경쟁 ​​조건(TOCTOU)으로 인해 발생하며, polkit 권한 부여를 우회하는 데서 비롯됩니다.
  • 이는 우분투, 데비안, 페도라, 록키 리눅스와 같은 인기 있는 배포판의 기본 설치에 직접적인 영향을 미칩니다.
  • 공격자는 스케줄러가 작업을 시작하기 전에 두 번째 요청을 전송하여 보안 거래의 플래그를 덮어쓸 수 있습니다.
  • 해당 취약점은 PackageKit 1.3.5 버전에서 수정되었으며, PackageKit에서 사용자 지정 규칙을 생성하는 것이 임시 해결책입니다.

팩투더루트

몇일 전에 새로운 심각한 취약점에 대한 정보가 공개되었습니다. 리눅스 환경에 영향을 미치는 것 "Pack2TheRoot". CVE-2026-41651로 분류됨.이 결함은 PackageKit(여러 배포판에서 패키지 관리를 통합하기 위한 D-Bus 추상화 계층 역할을 하는 도구)에 영향을 미칩니다.

판결에 관한 내용이 언급되어 있습니다. 이 기능은 권한이 없는 로컬 사용자가 임의로 패키지를 설치하거나 제거할 수 있도록 허용합니다. 이 취약점을 악용하면 공격자는 감염된 시스템에 대한 완전한 루트 권한을 획득할 수 있습니다. 이 문제는 12년 전(2014년)에 출시된 버전 1.0.2부터 존재해 왔으며, 우분투, 데비안, 록키 리눅스, 페도라와 같은 인기 배포판의 기본 설정에 영향을 미치기 때문에 그 파급 효과는 상당합니다.

Pack2TheRoot: PackageKit 취약점으로 Linux에서 관리자 권한 획득 가능

El Pack2TheRoot의 발견은 조사의 결과였습니다. 도이치텔레콤의 레드팀이 주도한 이 프로젝트는 그들은 클로드 오푸스 인공지능 모델을 사용했습니다. 로컬 권한 상승 경로에 대한 분석을 안내하기 위해서입니다.

Lo연구원들은 처음에 pkcon install 명령어를 비밀번호 없이 실행할 수 있다는 사실을 발견했습니다.특정 Fedora 구성에서 발생한 문제로 인해 기본 권한 부여 방식에 대한 의심이 생겼습니다. 해당 취약점을 확인하고 PackageKit 개발자들에게 책임감 있게 보고했습니다. 작동하는 익스플로잇이 개발되었습니다. 자세한 내용의 공개는 사용자와 관리자가 필요한 업데이트를 적용할 수 있도록 전략적으로 연기되었습니다.

공격의 메커니즘

의 뿌리 취약성은 직업적 상황에 있습니다. (TOCTOU 유형: 점검 시점부터 사용 시점까지) 이내 백그라운드 프로세스 거래 관리 PackageKit의 (데몬)PackageKit은 루트 사용자 권한으로 작동하며, 권한 부여를 polkit 시스템에 위임합니다. 클라이언트가 InstallFiles 메서드 등을 사용하여 패키지 설치를 요청할 때, 트랜잭션의 동작 방식을 결정하는 플래그 세트를 전송합니다.

SIMULATE 또는 ONLY_DOWNLOAD와 같은 특정 플래그는 PackageKit에게 polkit 인증을 건너뛰도록 지시합니다. 이론적으로 시스템의 상태를 변경하지 않는 안전한 작업을 나타내기 때문입니다. 이 오류는 트랜잭션 처리기가 덮어쓰기 때문에 발생합니다. 이러한 지표는 거래가 이미 승인되었는지 또는 실행 중인지 여부를 확인하지 않고 새로운 호출이 있을 때마다 무조건 캐시됩니다.

pack2theroot-poc2

Un 공격자는 "안전" 표시를 이용하여 거래를 시작할 수 있습니다. (이로써 폴킷의 승인을 우회함) 그리고 몇 밀리초 후에 두 번째 D-Bus 요청을 보냅니다. 동일한 트랜잭션에 대해 두 번째 요청이 발생하지만, 이번에는 실제 설치를 명령하는 악성 플래그가 포함됩니다. GLib의 이벤트 루프 우선순위 아키텍처(D-Bus 메시지가 유휴 콜백보다 먼저 처리됨)로 인해 두 번째 요청은 스케줄러가 작업을 시작하기 직전에 매개변수를 덮어씁니다.

결과적으로, 이전에 "안전"으로 승인되었던 거래는 대체된 매개변수를 사용하여 실행됩니다.관리자 권한으로 패키지를 설치합니다.

해결책 및 완화 방안

주목해야 할 점은 해당 취약점은 PackageKit 버전 1.3.5에서 패치되었습니다.따라서 개발자들은 시스템 관리자들에게 `systemctl status packagekit`과 같은 명령어를 사용하거나 `pkmon`으로 활동을 모니터링하여 서비스 상태를 확인함으로써 시스템의 취약성을 점검할 것을 권장합니다.

라스 데비안, 우분투, 페도라를 포함한 주요 배포판들은 이미 패키지 배포를 시작했습니다. 업데이트는 공식 채널을 통해 배포됩니다. 패치가 즉시 제공되지 않는 시스템의 경우, 연구원들은 사용자 지정 polkit 규칙을 배포하는 해결 방법을 제안했습니다.

해당 규칙은 PackageKit 설치 작업을 즉시 그리고 아무런 경고 없이 거부합니다. 루트 사용자가 아닌 경우, 이로 인해 경쟁 조건 창이 열리는 것을 방지할 수 있습니다. 이 공격은 빠르고 조용하게 실행되지만, 시스템 로그에 명확한 흔적을 남긴다는 점에 유의해야 합니다. 공격이 성공하면 PackageKit 데몬이 어설션 실패(assertion failed: (!transaction->priv->emitted_finished))로 인해 충돌합니다. systemd가 서비스를 재시작하여 서비스 거부 공격을 방지하지만, journalctl에 이 메시지가 기록되는 것은 시스템이 손상되었음을 강력하게 시사합니다.

마지막으로, 이 주제에 대해 더 자세히 알고 싶으시다면 다음을 참고하십시오. 다음 링크에서 세부 사항.


선호하는 소스로 추가