
पैक4जे JWT में एक प्रमाणीकरण बाईपास प्रदर्शित करने वाला पायथन प्रूफ-ऑफ-कॉन्सेप्ट, जो बिना हस्ताक्षरित आंतरिक JWT के साथ JWE टोकन तैयार करके, निजी कुंजी के बिना विशेषाधिकार वृद्धि की अनुमति देता है।
CVE‑2026‑29000 के लिए Python Proof‑of‑Concept, जो pac4j JWT मॉड्यूल का उपयोग करने वाले अनुप्रयोगों को प्रभावित करने वाला एक गंभीर प्रमाणीकरण बाईपास है।
यह भेद्यता हमलावरों को एक दुर्भावनापूर्ण JWE टोकन जिसमें एक अहस्ताक्षरित PlainJWT (alg: none) होता है भेजकर मनमाने उपयोगकर्ताओं के रूप में प्रमाणीकरण करने की अनुमति देती है।
pac4j अनुप्रयोग निम्नलिखित टोकन प्रवाह का उपयोग कर सकते हैं:
/api/auth/login के माध्यम से प्रमाणीकरण करता हैJWT पार्सिंग तर्क के गलत संचालन के कारण, जब आंतरिक टोकन एक PlainJWT (अहस्ताक्षरित टोकन) होता है:
toSignedJWT() null लौटाता हैयह हमलावर को अनुमति देता है:
एक हमलावर यह कर सकता है:
कोई निजी कुंजी आवश्यक नहीं है — केवल JWKS के माध्यम से उजागर सार्वजनिक कुंजी की आवश्यकता है।
यह रिपॉजिटरी एक Python PoC प्रदान करता है जो:
Python 3.x
निर्भरताएँ स्थापित करें:
pip install jwcrypto requests
python3 poc.py \
--jwks http://target:8080/api/auth/jwks \
--user admin \
--role ROLE_ADMIN
उदाहरण आउटपुट:
=== Malicious JWE Token ===
eyJhbGciOiJSU0EtT0FFUC0yNTYiLCJlbmMiOiJBMTI4R0NNIiwiY3R5IjoiSldUIn0...
इसे इस प्रकार उपयोग करें:
Authorization: Bearer <TOKEN>
यह रिपॉजिटरी केवल शैक्षिक और शोध उद्देश्यों के लिए प्रदान की गई है। उचित प्राधिकरण के बिना सिस्टम के विरुद्ध इस कोड का उपयोग न करें।
Ali Hussainzada Application Security Researcher | Bug Hunter