
CVE-2021-4034(PwnKit)의 교육용 PoC, polkit의 pkexec를 통한 LPE. 승인된 사용만 허용됩니다.
PwnKit에 대한 개념 증명 코드로, polkit의 pkexec에서 발생하는 로컬 권한 상승 취약점입니다. 기본 설치 상태에서 권한이 없는 로컬 사용자가 루트가 될 수 있습니다.
취약한 버전의 pkexec는 프로세스 인자 개수를 잘못 처리합니다. 이로 인해 제어된 환경 변수가 pkexec의 환경에 다시 유입되어, 공격자가 제어하는 공유 객체가 루트 권한으로 실행됩니다. 이 취약점은 2022년 1월 25일 Qualys Research Team에 의해 공개되었으며 CVSS v3.1에서 7.8 높음 점수를 받았습니다. NVD 항목은 CVE-2021-4034입니다.
사실상 2009년 이후의 모든 polkit 릴리스가 조정된 수정 전까지 영향을 받았습니다. 배포판은 공개일 이후에 패치된 패키지를 제공했으므로, 벤더 업데이트를 최신 상태로 유지하십시오.
이 저장소는 잘 문서화되어 공개된 취약점에 대한 교육용 참고 자료입니다. pkexec의 인자 처리 결함을 연구하고, 승인된 실습 및 평가에서 패치 상태를 확인하며, 탐지 및 수정 노트를 유지하는 데 사용합니다.
소유하고 있거나 테스트 권한이 있는 시스템에서만 실행하십시오.
gcc cve-2021-4034-poc.c -o cve-2021-4034-poc
./cve-2021-4034-poc
취약한 호스트에서는 루트 셸로 전환됩니다. Debian 10 buster 및 CentOS 7에서 확인되었습니다.
polkit과 pkexec를 배포판의 수정된 릴리스로 업데이트하십시오. 즉시 패치할 수 없는 경우 pkexec 바이너리에서 SUID 비트를 chmod 0755로 제거하되, pkexec 권한 위임 기능을 잃게 됩니다. 탐지를 위해서는 빈 argv 또는 루트 셸 직전에 GCONV_PATH, CHARSET, SHELL과 같은 비정상적인 환경 변수와 함께 pkexec가 실행되는 경우를 알리십시오.
이 취약점은 Qualys Research Team에 의해 발견되어 책임감 있게 공개되었습니다.
oss-security 권고: https://seclists.org/oss-sec/2022/q1/80
이 코드는 연구 및 허가된 보안 테스트 목적으로만 게시됩니다. 소유하지 않거나 서면 허가 없이 시스템에서 실행하는 것은 불법이며 형사 및 민사 책임을 초래할 수 있습니다. 자신의 실습 환경이나 서명된 작업 범위 내에서만 사용하십시오. 사용 결과에 대한 책임은 사용자 본인에게 있습니다.