Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-29000-Lab — مختبر إثبات مفهوم على مستوى المكتبة يوضح CVE-2026-29000 في pac4j-jwt، مع مقارنة الإصدارات الضعيفة والمصححة باستخدام Docker لإظهار قبول ورفض JWT المزور. | Kitploit
أدوات/GitHubGitHub/rootdirective-sec/cve-2026-29000-lab
تحليل الثغرات الأمنيةالاستغلالأمن الويبالمصادقة
GitHubrootdirective-sec/cve-2026-29000-lab

CVE-2026-29000-Lab

مختبر إثبات مفهوم على مستوى المكتبة يوضح CVE-2026-29000 في pac4j-jwt، مع مقارنة الإصدارات الضعيفة والمصححة باستخدام Docker لإظهار قبول ورفض JWT المزور.

عرض المستودع
1منذ 5 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2026-29000 — مختبر PoC على مستوى المكتبة لـ pac4j-jwt

TL;DR

يحتوي هذا المستودع على PoC على مستوى المكتبة لثغرة CVE-2026-29000 في pac4j-jwt.

يقارن السلوك الضعيف والمصحح عبر حالتين:

  • خط الأساس: يجب قبول رمز شرعي
  • الهجوم: يجب قبول رمز مزوّر في الإصدارات الضعيفة ورفضه في الإصدار المصحح
الإصدارخط الأساسالهجومالنتيجة
6.0.3✅✅ضعيف
6.0.4.1✅✅ضعيف
6.3.3✅❌مصحح

يُظهر هذا الـ PoC إنشاء ملف تعريف مصادق عليه مع subject وأدوار يتحكم بها المهاجم في الإصدارات الضعيفة، بينما يرفض الإصدار المصحح الرمز المزوّر.


ما هو هذا المشروع

هذا ليس عرضًا لتطبيق ويب.

إنه برنامج Java صغير يستدعي JwtAuthenticator مباشرة ويقارن إصدارات متعددة من pac4j-jwt داخل Docker.

الهدف هو إثبات ثلاثة أمور:

  1. الرموز الشرعية لا تزال تعمل
  2. الادعاءات المزوّرة التي يتحكم بها المهاجم تُقبل في الإصدارات الضعيفة
  3. الادعاءات المزوّرة التي يتحكم بها المهاجم تُرفض في الإصدار المصحح

لماذا تم اختيار هذه الإصدارات

تم اختيار الإصدارات المختبرة عمدًا:

  • 6.0.3 — أُدرج لأن تقريرًا تقنيًا عامًا أفاد بوجود PoC يعمل على هذا الإصدار
  • 6.0.4.1 — أُدرج لأن بيانات الاستشارة العامة تضعه ضمن نطاق 6.x المتأثر
  • 6.3.3 — أُدرج لأنه الإصدار المُصلح لخط 6.x

يمنح هذا المختبر ثلاث نقاط مرجعية مفيدة:

  • إصدار مرجعي لـ PoC عام
  • إصدار متأثر مؤكد من الاستشارة
  • الإصدار المصحح

هيكل المشروع

root@kitploit:~
.
├── docker-compose.yml
├── Dockerfile
├── pom.xml
└── src/main/java/lab/Repro.java

أدوار الملفات

  • docker-compose.yml يحدد مصفوفة الاختبار لكل إصدار.

  • Dockerfile يبني ويشغّل الـ PoC داخل حاوية.

  • pom.xml يحدد التبعيات ويبني JAR قابلًا للتشغيل.

  • src/main/java/lab/Repro.java أداة الـ PoC الفعلية.


ماذا تعني الخدمات

يحدد ملف docker-compose.yml ثلاث خدمات:

  • v603 = اختبار pac4j-jwt 6.0.3
  • v6041 = اختبار pac4j-jwt 6.0.4.1
  • patched = اختبار pac4j-jwt 6.3.3

إذن هذه الأوامر تعني "تشغيل الـ PoC مرة واحدة ضد هذا الإصدار المحدد":

root@kitploit:~
docker compose run --rm v603
docker compose run --rm v6041
docker compose run --rm patched

--rm تعني أن الحاوية المؤقتة تُحذف بعد انتهاء التشغيل.


كيفية تشغيله

البناء

root@kitploit:~
docker compose build --no-cache

التشغيل

root@kitploit:~
docker compose run --rm v603
docker compose run --rm v6041
docker compose run --rm patched

ماذا يفعل الـ PoC

لكل إصدار، يشغّل البرنامج حالتين.

1) خط الأساس

يُنشئ رمزًا شرعيًا ويتحقق منه عبر JwtAuthenticator.

النتيجة المتوقعة:

  • مقبول في جميع الإصدارات المختبرة

2) الهجوم

يُنشئ رمزًا مزوّرًا بادعاءات يتحكم بها المهاجم ويتحقق منه عبر JwtAuthenticator.

النتيجة المتوقعة:

  • الإصدارات الضعيفة ← الهوية المزوّرة مقبولة
  • الإصدار المصحح ← الرمز المزوّر مرفوض

كيفية قراءة المخرجات

مخرجات الإصدار الضعيف

يجب أن ترى شيئًا مثل هذا:

root@kitploit:~
[case] baseline
  result: ACCEPTED
  observed_subject: alice
  observed_roles: [ROLE_USER]

[case] attack
  result: ACCEPTED
  observed_subject: admin#override
  observed_roles: [ROLE_SUPERUSER, ROLE_ADMIN]

[summary]
  conclusion: VULNERABLE: forged token accepted

المعنى:

  • الرمز العادي يعمل
  • الرمز المزوّر مقبول أيضًا
  • تم استبدال subject والأدوار بقيم يتحكم بها المهاجم

مخرجات الإصدار المصحح

يجب أن ترى شيئًا مثل هذا:

root@kitploit:~
[case] baseline
  result: ACCEPTED
  observed_subject: alice
  observed_roles: [ROLE_USER]

[case] attack
  result: REJECTED
  reason: CredentialsException: A non-signed JWT cannot be accepted as signature configurations have been defined

[summary]
  conclusion: PATCHED: forged token rejected

المعنى:

  • الرمز العادي يعمل
  • الرمز المزوّر مرفوض
  • الإصدار المصحح لم يعد يقبل مسار JWT الداخلي غير الموقّع الذي يستخدمه الهجوم

لماذا يركز هذا المستودع على سلوك المكتبة بدلًا من سكربت رمز عام

تؤثر هذه الثغرة على مسار مصادقة على مستوى المكتبة، وليس تطبيقًا واحدًا بنموذج أدوار موحد.

الجزء القابل لإعادة الاستخدام هو شكل الهجوم:

  • ادعاءات مزوّرة يتحكم بها المهاجم
  • مشفرة كـ JWE
  • تُمرر إلى JwtAuthenticator

ما ليس موحدًا عبر التطبيقات الحقيقية:

  • أسماء الادعاءات
  • أسماء الأدوار
  • تعيين التفويض
  • مادة المفاتيح / إعداد JWKS
  • معالجة الملفات الشخصية الخاصة بالتطبيق

لهذا السبب، يركز هذا المستودع على إثبات أن المكتبة تقبل الادعاءات المزوّرة التي يتحكم بها المهاجم في الإصدارات الضعيفة، بدلًا من الادعاء بوجود رمز موحد واحد يعمل تلقائيًا ضد أي تطبيق.


لقطات الشاشة

  1. docker compose run --rm v603
  2. docker compose run --rm v6041
  3. docker compose run --rm patched

الإصدار الضعيف: 6.0.3

example 603 output

الإصدار الضعيف: 6.0.4.1

example 6041 output

الإصدار المصحح: 6.3.3

example patched output


المراجع

  • استشارة pac4j الأمنية لـ JwtAuthenticator
  • قاعدة بيانات استشارات GitHub: CVE-2026-29000
  • إدخال NVD: CVE-2026-29000
  • التقرير التقني من CodeAnt: تجاوز المصادقة بالمفتاح العام PoC

الخلاصة النهائية

يُظهر هذا المشروع ثلاث حقائق أساسية:

  1. رموز خط الأساس الشرعية مقبولة في جميع الإصدارات المختبرة
  2. الادعاءات المزوّرة التي يتحكم بها المهاجم مقبولة في 6.0.3 و6.0.4.1
  3. الادعاءات المزوّرة التي يتحكم بها المهاجم مرفوضة في 6.3.3

هذا هو الدليل الأساسي للضعف مقابل التصحيح لهذه الثغرة في هذا المستودع.

في الإصدارات الضعيفة، لا يتم تحليل الرمز المزوّر فحسب — بل يُنتج ملف تعريف مصادق عليه مع subject وأدوار يتحكم بها المهاجم.

تنزيل الأداة