
إثبات مفهوم لاستغلال CVE-2026-29000، وهو تجاوز للمصادقة في pac4j-jwt عبر JWT غير موقّع مغلّف بـ JWE، مما يتيح تصعيد الامتيازات.
هذه الأداة مخصصة لأغراض الاختبار الأمني التعليمي والأخلاقي فقط. أنا لا أدعم ولا سأدعم الأنشطة الضارة بأي شكل من الأشكال. استخدمها على مسؤوليتك الخاصة.
CVE-2026-29000 هي ثغرة أمنية حرجة (CVSS 10.0) في مكتبة pac4j-jwt. تنبع من منطق تحقق غير صحيح في JwtAuthenticator عند التعامل مع الرموز المتداخلة (المشفرة).
يكمن الخلل في أنه بينما يقوم pac4j بفك تشفير رمز JWE (تشفير JSON Web Encryption) بشكل صحيح باستخدام مفتاح الخادم، فإنه يفشل في فرض التحقق من التوقيع على JWT الداخلي. وهذا يسمح للمهاجم بتغليف JWT غير موقّع (باستخدام {"alg": "none"}) داخل غلاف JWE صالح. يقوم الخادم بفك تشفير JWE، ويثق في الحمولة الداخلية، ويمنح الوصول.
pac4j الأقدم من 4.5.9 و5.7.9 و6.3.3.ROLE_ADMIN).يقوم السكربت المقدم، CVE-2026-29000.py، بأتمتة الخطوات التالية:
/api/auth/jwks.alg: none وادعاءات إدارية.تأكد من تثبيت مكتبات Python المطلوبة:
pip install requests jwcrypto
python3 CVE-2026-29000.py <TARGET_URL>
مثال:
python3 CVE-2026-29000.py http://vulnerable-app.local:8080
للتخفيف من هذه الثغرة، اتخذ الإجراءات التالية:
pac4j-jwt إلى الإصدار 4.5.9 أو 5.7.9 أو 6.3.3 (أو أحدث) فورًا.JwtAuthenticator الخاص بك يتطلب صراحةً توقيعًا صالحًا ولا يسمح بخوارزمية none.تم الإنشاء بواسطة: Cipher1x1