
مختبر محلي يحاكي CVE-2026-29000 تجاوز المصادقة JWT/JWE في pac4j-jwt. يوفر واجهات برمجة تطبيقات لتسجيل الدخول وتزوير الرموز ولوحة المعلومات لممارسة استغلال الثغرات على الويب في بيئة Java/SparkJava محوسبة باستخدام Docker.
مختبر Java/SparkJava يحاكي ثغرة التحقق من JWT/JWE المتعلقة بـ CVE-2026-29000. يعمل التطبيق على المنفذ 4567 ويوفر واجهات برمجية (API) لتجربة تدفق تسجيل الدخول الصحيح، إنشاء رمز مزيف، والتحقق من لوحة التحكم (dashboard).
يؤثر CVE-2026-29000 على pac4j-jwt في الإصدارات الأقدم من 4.5.9 و5.7.9 و6.3.3. تكمن الثغرة في JwtAuthenticator عند معالجة JWT/JWE المشفر، مما يسمح للمهاجم بتزوير رمز التحقق في بعض تدفقات المصادقة.
الإصدارات التي يجب ترقيتها على الأقل وفقًا للفرع المستخدم:
4.x: الترقية إلى 4.5.9 أو أحدث5.x: الترقية إلى أو أحدث5.7.96.x: الترقية إلى 6.3.3 أو أحدثفي المجلد الجذر للمشروع، قم بتشغيل:
docker compose up --build
بعد الانتهاء من البناء، افتح:
http://localhost:4567
إيقاف المختبر:
docker compose down
بناء الصورة:
docker build -t cve-2026-29000-lab .
تشغيل الحاوية:
docker run --rm -p 4567:4567 --name cve-2026-29000-lab cve-2026-29000-lab
التحقق من المفتاح العام للخادم:
curl http://localhost:4567/api/public-key
الانتقال إلى مجلد lab:
cd lab
تشغيل التطبيق:
mvn exec:java
أو البناء أولاً ثم التشغيل باستخدام classpath:
mvn -DskipTests package dependency:copy-dependencies
java -cp "target/classes;target/dependency/*" com.demo.App
على Linux/macOS، استخدم : بدلاً من ;:
java -cp "target/classes:target/dependency/*" com.demo.App
GET / - إرشادات سريعة لخطوات العرض التوضيحيPOST /api/login - إنشاء رمز صحيحPOST /api/forge-token - إنشاء رمز لعرض الالتفاف (bypass)GET /api/dashboard - التحقق من الرمز الموجود في الترويسة Authorization: Bearer <token>GET /api/public-key - عرض المفتاح العام بصيغة JWKتسجيل الدخول الصحيح:
curl -X POST http://localhost:4567/api/login \
-H "Content-Type: application/json" \
-d "{\"username\":\"user_lucas\",\"role\":\"user\"}"
إنشاء رمز مزيف:
curl -X POST http://localhost:4567/api/forge-token \
-H "Content-Type: application/json" \
-d "{\"username\":\"admin\",\"role\":\"administrator\"}"
CVE-2026-29000-lab/
|-- Dockerfile
|-- docker-compose.yml
|-- lab/
| |-- pom.xml
| `-- src/main/java/com/demo/
| |-- App.java
| `-- VulnerableAuthenticator.java
`-- README.md
هذا المختبر مخصص للتعلم والاختبار في بيئة محلية فقط. لا تقم بنشره علنًا أو استخدامه لاستهداف أنظمة غير مصرح بها.