
أداة توليد استغلال مبنية على Rust لثغرة CVE-2026-29000، وهي تجاوز للمصادقة في pac4j-jwt عبر JWT من نوع alg:none مدمج داخل JWE، مع أتمتة استرجاع JWKS وتزوير الرموز للاختبار المصرح به.
يحتوي هذا المستودع على تنفيذ متخصص بلغة Rust لاستغلال CVE-2026-29000، وهو ثغرة تجاوز مصادقة في pac4j-jwt. تنبع الثغرة من "تخطي التحقق من التوقيع" عندما يتم تضمين PlainJWT (alg: none) داخل حاوية JWE مشفرة.
استرجاع JWKS تلقائي: يجلب مفاتيح RSA العامة للهدف مباشرة من نقطة النهاية /api/auth/jwks.
بناء JWS غير آمن: يصنع JWT بخوارزمية None مع ادعاءات إدارية (ROLE_ADMIN).
غلاف JWE: يغلّف الرمز الداخلي الخبيث باستخدام RSA-OAEP-256 وA128GCM لتجاوز مرشحات المحيط الأولية.
تنفيذ غير متزامن: مدعوم بـ tokio وreqwest لشبكات فعّالة.
تثبيت Rust/Cargo.
وصول شبكي إلى الهدف (الافتراضي: http://principal.htb:8080).
التثبيت استنساخ المستودع:
git clone https://github.com/0xW1LD/CVE-2026-29000.git
cd CVE-2026-29000
شغّل مولّد الاستغلال لإخراج JWE المزوّر:
cargo run
يستهدف الاستغلال خللاً منطقياً حيث تقوم المكتبة بفك تشفير JWE الخارجي لكنها تفشل في التحقق بشكل متكرر من توقيع JWS الداخلي إذا كان الترويسة تحدد alg: none.
الطبقة الداخلية: JWT بخوارزمية None يحتوي على الموضوع الإداري.
الطبقة الخارجية: يتم تشفير JWT الداخلي باستخدام المفتاح العام للخادم نفسه.
النتيجة: يقوم الخادم بفك تشفير الرمز، ويرى أنه تم تشفيره بشكل صحيح، ويثق في الحمولة الداخلية دون التحقق من وجود توقيع.
هذه الأداة مخصصة للأغراض التعليمية والاختبارات الأمنية المصرح بها (بيئات CTF/المختبرات) فقط. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني.