
CVE-2026-29000 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो pac4j-jwt में JWE कंटेनर के अंदर alg:none के साथ नेस्टेड PlainJWT के माध्यम से एक प्रमाणीकरण बायपास है।
इस रिपॉजिटरी में pac4j-jwt (CVE-2026-29000) में प्रमाणीकरण बाईपास भेद्यता के लिए एक प्रूफ-ऑफ-कॉन्सेप्ट (POC) शामिल है। यह भेद्यता एक हमलावर को JWE (JSON Web Encryption) कंटेनर के अंदर एक PlainJWT (alg: none का उपयोग करके) नेस्ट करके सिग्नेचर सत्यापन को बाईपास करने की अनुमति देती है।
यह हमला सर्वर की अपनी सार्वजनिक कुंजी से एन्क्रिप्टेड JWE को डिक्रिप्ट करने और फिर none एल्गोरिदम का उपयोग करने पर उसके सिग्नेचर को सत्यापित किए बिना आंतरिक JWT पर भरोसा करने की इच्छा का फायदा उठाकर काम करता है।
सुनिश्चित करें कि आपके पास Python 3 स्थापित है और आवश्यक निर्भरताएँ भी:
pip install requests jwcrypto
लक्ष्य की सार्वजनिक कुंजी JWKS एंडपॉइंट से प्राप्त करने, ROLE_ADMIN विशेषाधिकारों के साथ एक दुर्भावनापूर्ण टोकन तैयार करने और इसे JWE में लपेटने के लिए exp.py का उपयोग करें।
python3 exp.py <TARGET_URL> --user admin --role ROLE_ADMIN
उदाहरण:
python3 exp.py http://localhost:8080
एक बार जब आपके पास जाली टोकन हो, तो सुरक्षित API एंडपॉइंट्स के साथ इंटरैक्ट करने के लिए app.py का उपयोग करें।
python3 app.py <TARGET_URL> <FORGED_TOKEN>
किसी विशिष्ट एंडपॉइंट का परीक्षण करें:
python3 app.py http://localhost:8080 <FORGED_TOKEN> --endpoint /api/users
exp.py: मुख्य एक्सप्लॉइट स्क्रिप्ट जो JWKS प्राप्त करती है, एक PlainJWT तैयार करती है, और एक JWE जाली बनाती है।app.py: खोजे गए API एंडपॉइंट्स (/api/dashboard, /api/users, /api/settings) के विरुद्ध जाली टोकन का परीक्षण करने के लिए एक उपयोगिता स्क्रिप्ट।यह POC केवल शैक्षिक और अधिकृत सुरक्षा परीक्षण उद्देश्यों के लिए है। कंप्यूटर सिस्टम तक अनधिकृत पहुँच अवैध है।