Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-84181 — نموذج إثبات مفهوم قابل للتشغيل بـ Spring Boot وQuarkus يعيد إنتاج تجاوز المصادقة thread-bound-subject في Apache Camel camel-shiro، مع عناصر تحكم متأثرة وأخرى مُرقّعة. | Kitploit
أدوات/GitHubGitHub/oscerd/cve-2026-84181
أدوات دفاعيةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالمصادقةالتعلم والتعليم
GitHuboscerd/cve-2026-84181

CVE-2026-84181

نموذج إثبات مفهوم قابل للتشغيل بـ Spring Boot وQuarkus يعيد إنتاج تجاوز المصادقة thread-bound-subject في Apache Camel camel-shiro، مع عناصر تحكم متأثرة وأخرى مُرقّعة.

عرض المستودع
3منذ يوم واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-84181 — camel-shiro: تجاوز المصادقة عبر subject مرتبط بالخيط

مُعيد إنتاج إثبات مفهوم قابل للتشغيل لثغرة Apache Camel حيث تجاوز معالج أمان Shiro التحقق من بيانات الاعتماد عندما كان Subject الخاص بـ Shiro المرتبط بالفعل بالخيط الحالي يحمل نفس الـ principal الخاص بالتبادل الوارد. ولأن الخيط الذي يحمل تبادل Camel يُسحب من مجموعة (pool) ويُعاد استخدامه عبر التبادلات، فإن subject تُرك مرتبطًا بتبادل مُصادَق عليه سابقًا كان يمكنه تلبية التحقق لتبادل لاحق قدّم بيانات اعتماد صالحة خاصة به — لم يتم التحقق من كلمة المرور في ذلك التبادل اللاحق أبدًا. لا يحتاج المهاجم إلى أكثر من إرسال طلب يسمّي principal قيد الاستخدام النشط حاليًا.

بيئة التشغيلالدليلالحزمة
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-shiro 4.22.0 (متأثرة؛ مُصلحة 4.22.1)
Camel Quarkuscamel-quarkus/Quarkus 3.29.0 + camel-quarkus-shiro (Camel 4.15.0، متأثرة؛ ضابط مُصلح CQ 3.40.0 / Camel 4.22.1)

كلا الوحدتين تُظهران السلوك المتأثر و السلوك المُصلح.

ما الذي يُظهره

المسار محمي بواسطة ShiroSecurityPolicy مبني بـ alwaysReauthenticate=false — وهو الوضع الموثّق الذي يُبقى فيه subject المُصادَق عليه مرتبطًا عمدًا بخيط العامل (المجمّع، المُعاد استخدامه) بين التبادلات. يقوم برنامج الاستغلال، ضمن خيط HTTP عامل واحد، بتشغيل تبادلين بالترتيب:

  1. طلب شرعي من ringo بكلمة المرور الصحيحة starr — يُصادِق ويترك subject الخاص بـ Shiro مرتبطًا بهذا الخيط (كما يفعل طلب مُصادَق عليه سابقًا في خدمة مزدحمة)؛
  2. طلب مهاجم يسمّي نفس المستخدم ringo لكن بكلمة مرور خاطئة not-starr، على نفس الخيط.
  • المتأثرة: يُقبل التبادل الثاني دون التحقق من كلمة مروره — إذ يستفيد من subject المتروكة مرتبطةً بالخيط من الخطوة 1 — ويصل إلى المنطق المحمي. تجاوز للمصادقة.
  • المُصلحة: يتم التحقق من بيانات اعتماد التبادل الثاني بشكل مستقل ويُرفض بـ AuthenticationException، رغم أن نفس المستخدم لا يزال مرتبطًا بالخيط.
# Camel Spring Boot
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: wrong password reaches protected logic; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-84181-shiro-auth-bypass-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: wrong password rejected; >>> Not exploited
# Camel Quarkus
cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected (Camel 4.15.0): wrong password reaches protected logic
docker compose down
# Patched control: CQ 3.40.0 ships Camel 4.22.1
mvn clean package -Dcamel-quarkus.version=3.40.0 -Dquarkus.platform.version=3.40.0
java -jar target/quarkus-app/quarkus-run.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: wrong password rejected

ملخص الثغرة الأمنية

الخاصيةالقيمة
المكوّنcamel-shiro (ShiroSecurityProcessor.authenticateUser)
CWECWE-287 (مصادقة غير سليمة)
الخطورةMEDIUM
ناقل الهجومطلب يسمّي هوية أساسية (principal) مرتبطة حاليًا بخيط عامل (worker thread) معاد استخدامه، ولا يحمل أي بيانات اعتماد صالحة خاصة به
التأثيرتجاوز المصادقة: يُقبل طلب غير مُصادَق عليه بوصفه هوية أساسية مرتبطة مسبقًا؛ ولا يتم التحقق من كلمة مروره أبدًا
الإصدارات المتأثرةمن 4.0.0 قبل 4.18.5، ومن 4.19.0 قبل 4.22.1
الإصدارات المُصلحة4.18.5، 4.22.1، 4.23.0
JIRACAMEL-24439
الفضلClaude Security Scan Tool

الإشعار الأمني: https://camel.apache.org/security/CVE-2026-84181.html

الإصلاح

لم يعد ShiroSecurityProcessor.authenticateUser يتخطى تسجيل الدخول عندما يحمل الكائن (subject) المرتبط بالخيط بالفعل نفس الهوية الأساسية. كان الكود السابق يتوقف مبكرًا عند الشرط currentUser.isAuthenticated() && username.equals(currentUser.getPrincipal())؛ فتطابق اسم المستخدم لا يقول شيئًا عن كلمة المرور المقدَّمة مع هذا التبادل. أصبح المعالج الآن يستدعي currentUser.login(token) في كل تبادل، بحيث يتم التحقق دائمًا من بيانات الاعتماد المقدَّمة. لا يزال alwaysReauthenticate يتحكم في عمر rememberMe للكائن (subject)، لكنه لم يعد يحدد ما إذا كان يتم التحقق من كلمة المرور أم لا.

التخفيف إذا لم تتمكن من الترقية

تأكد من مسح كائن Shiro (subject) من الخيط في نهاية كل تبادل (حتى لا يمكن توريث أي كائن لتبادل لاحق) — على سبيل المثال باستخدام onCompletion/معالج يستدعي ThreadContext.unbindSubject() الخاص بـ Shiro — إلى أن تتمكن من الترقية.

إخلاء المسؤولية

يُنشر هذا المستودع لأغراض تعليمية ودفاعية: لمساعدة مستخدمي Apache Camel على فهم الثغرة الأمنية، والتحقق مما إذا كانوا متأثرين بها، وتأكيد أن الترقية تحلها. إن المستخدمين وكلمات المرور والمفاتيح الواردة هنا هي بيانات محلية خاملة. لا تستخدم هذه المواد ضد أنظمة لا تملكها أو لا تديرها.

تنزيل الأداة