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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-83531 — نموذج إثبات مفهوم قابل للتشغيل بـ Spring Boot للثغرة CVE-2026-83531، يوضح حقن تعبيرات اللغة في نقطة نهاية dynamic-router-control الخاصة بـ Apache Camel ويتحقق من الإصلاح. | Kitploit
أدوات/GitHubGitHub/oscerd/cve-2026-83531
أدوات دفاعيةتحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويبالتعلم والتعليم
GitHuboscerd/cve-2026-83531

CVE-2026-83531

نموذج إثبات مفهوم قابل للتشغيل بـ Spring Boot للثغرة CVE-2026-83531، يوضح حقن تعبيرات اللغة في نقطة نهاية dynamic-router-control الخاصة بـ Apache Camel ويتحقق من الإصلاح.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-83531 — camel-dynamic-router: حقن لغة تعبيرات في نقطة تحكم النهاية

مُعيد إنتاج عملي قابل للتشغيل لثغرة Apache Camel حيث كانت نقطة نهاية dynamic-router-control تأخذ المُحدِّد (predicate) الخاص بالاشتراك واسم اللغة المستخدمة في تصريفه من الرسالة الواردة (حقول predicate / expressionLanguage في DynamicRouterControlMessage، أو ترويسات CamelDynamicRouterPredicate / CamelDynamicRouterExpressionLanguage). ثم كانت الخدمة تحلّ تلك اللغة من CamelContext وتُصرّف التعبير إلى Predicate، دون قائمة سماح ودون اشتراك صريح. كان المُحدِّد المُصرَّف يُقيَّم مقابل كل تبادل يُوجَّه عبر القناة — لذا فإن أي فاعل قادر على إرسال رسالة على ناقل تقوم مساره بإعادة توجيهها إلى نقطة تحكم نهاية يمكنه تقديم تعبير من اختياره، يُقيَّم بامتيازات عملية Camel. كان يمكن اختيار أي لغة على مسار الفئات (classpath)، بما في ذلك simple، التي تكون موجودة دائمًا وكانت الافتراضية.

Camel Spring Boot فقط. لا يوجد امتداد camel-quarkus-dynamic-router، لذا لا يمكن تشغيل مُعيد الإنتاج هذا على Camel Quarkus.

بيئة التشغيلالدليلالمكدّس
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-dynamic-router 4.22.0 (متأثرة؛ مُصلحة في 4.22.1)

ما الذي يوضحه

يُهيّئ التطبيق قناة Dynamic Router باسم test (direct:start → dynamic-router://test). يرسل المهاجم رسالة تحكم subscribe تحمل تعبير مُحدِّد ولغة يختارهما المهاجم:

CamelDynamicRouterPredicate          = ${bean:detonator?method=detonate}
CamelDynamicRouterExpressionLanguage = simple

ثم يتم توجيه رسالة واحدة عبر القناة، والتي تقوم بتقييم محمول الاشتراك. في البنية المتأثرة يُنفَّذ التعبير، مستدعيًا detonator.detonate() — وهو بديل حميد لأي طريقة تسجيل بدون وسائط قد يصل إليها المهاجم (وأي لغة، مثل Groovy، تتيح تنفيذ تعليمات برمجية عشوائية). في البنية المُصلحة ترفض نقطة النهاية التحكمية أخذ المحمول/اللغة من الرسالة.

cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

الناتج المتوقع على البناء المتأثر:

Subscription accepted.
>>> PROVEN: the attacker-supplied predicate expression was compiled and evaluated, invoking
>>> detonator.detonate() with the privileges of the Camel process ...

على البناء المُصلَّح، يُرفض الاشتراك مع IllegalArgumentException: The subscription predicate expression, and the language used to compile it, cannot be taken from a control message. ... set 'allowPredicateFromMessage=true' ....

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

الخاصيةالقيمة
المكوّنcamel-dynamic-router (نقطة النهاية dynamic-router-control)
CWECWE-94 (حقن الشيفرة)، CWE-917 (حقن لغة التعبيرات)
الخطورةعالية
ناقل الهجومرسالة تحكم (subscribe/update) تُقدِّم تعبير predicate ولغة، عبر ناقل يقوم مساره بتمريرها إلى نقطة نهاية dynamic-router-control
التأثيرتقييم تعبير يختاره المهاجم (أي لغة متاحة على classpath) بصلاحيات عملية Camel — تنفيذ شيفرة
الإصدارات المتأثرةمن 4.4.0 قبل 4.18.5، ومن 4.19.0 قبل 4.22.1
الإصدارات المُصلَّحة4.18.5، 4.22.1، 4.23.0
JIRACAMEL-24576
الفضلLeon Zlobecki

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

الإصلاح

لم يعد تعبير predicate ولغته يُؤخذان من رسالة التحكم افتراضيًا: تُرفض رسالة التحكم التي تُقدِّمهما ما لم يُفعِّل مؤلف المسار ذلك صراحةً عبر allowPredicateFromMessage=true على نقطة النهاية dynamic-router-control. المسار المقصود هو تهيئة predicate وexpressionLanguage على URI الخاص بنقطة النهاية (خاضع لتحكم مؤلف المسار)، كما كانت الإصدارات السابقة لـ 4.4.0 تفعل.

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

لا تمرِّر الرسائل ذات المنشأ الخارجي إلى نقطة نهاية dynamic-router-control؛ وأدِر الاشتراكات فقط من نقاط النهاية الخاضعة لتحكم مؤلف المسار، وقيِّد النواقل التي يمكنها الوصول إلى قناة التحكم.

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

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

تنزيل الأداة