CVE-2026-83531
Apache Camel: نقطة تحكم Camel-Dynamic-Router تقوم بتجميع تعبيرات المسند المقدمة عبر رسائل التحكم
- تم النشر
- 19/10/2026
- محدث
- 20/10/2026
- تخصيص CNA
- apache
- الأدلة المرصودة
- 19/10/2026
CVSS الأساسي
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:Hمنخفض · الثلاثين يومًا القادمة
- المئوية
- 58.0%
- تاريخ الموديل
- 27/10/2026
EPSS هو تقدير إحصائي، وليس يقينًا أو مقياسًا للتأثير. ادمجها مع CVSS وحالة KEV والتعرض وبيئتك.
ملخص
ثغرة "التحكم غير السليم في توليد الشيفرة ('حقن الشيفرة')" و"عدم تحييد العناصر الخاصة المستخدمة في عبارة لغة التعبير ('حقن لغة التعبير')" في Apache Camel. تؤثر هذه المشكلة على Apache Camel: من 4.4.0 قبل 4.18.5، ومن 4.19.0 قبل 4.22.1. تتيح نقطة النهاية dynamic-router-control، التي أُدخلت في 4.4.0، للمشاركين في التوجيه إدارة اشتراكات Dynamic Router عبر إرسال رسائل تحكم. عند معالجة طلب اشتراك أو تحديث، كان DynamicRouterControlProducer يأخذ مسند الاشتراك (predicate) واسم اللغة المستخدمة في تجميعه من الرسالة الواردة، إما من حقلي predicate وexpressionLanguage في جسم DynamicRouterControlMessage أو من الترويسات CamelDynamicRouterPredicate وCamelDynamicRouterExpressionLanguage. ثم كان DynamicRouterControlService يحل تلك اللغة من CamelContext ويجمع التعبير إلى Predicate، دون قائمة سماح ودون اشتراك اختياري. كان المسند المُجمَّع يُضاف إلى قاعدة قواعد القناة ويُقيَّم مقابل كل exchange يُوجَّه عبر نقطة نهاية dynamic-router المقابلة طالما بقي الاشتراك قائمًا. لذلك، فإن أي مسار يعيد توجيه الرسائل من ناقل خارجي إلى نقطة نهاية التحكم، كما هو موضح في وثائق المكوّن للمشاركين في التوجيه في JVMs أو تطبيقات أخرى، كان يتيح لأي فاعل قادر على إرسال رسالة على ذلك الناقل تزويد تعبير من اختياره، يُقيَّم بصلاحيات عملية Camel. كان يمكن اختيار أي لغة تعبير متاحة على classpath، بما في ذلك لغة simple، التي تكون موجودة دائمًا وكانت الافتراضية في مسار الترويسات، لذا فإن إزالة لغات التعبير الاختيارية من classpath لم تمنع المشكلة. يتطلب الاستغلال القدرة على إرسال رسالة على ناقل يعيد مساره توجيهها إلى نقطة نهاية dynamic-router-control؛ ولا حاجة إلى أي مصادقة أخرى أو تفاعل من المستخدم. الإصدارات السابقة لـ 4.4.0 غير متأثرة، لأن قناة التحكم فيها كانت تأخذ تعبيرات المسند فقط من URI نقطة النهاية الذي يضبطه مؤلف المسار. يُنصح المستخدمون بالترقية إلى الإصدار 4.23.0، الذي يصلح المشكلة. إذا كان المستخدمون على سلسلة إصدارات 4.22.x، فيُقترح عليهم الترقية إلى 4.22.1. وإذا كان المستخدمون على سلسلة إصدارات 4.18.x، فيُقترح عليهم الترقية إلى 4.18.5. وصلت سلسلة إصدارات 4.14.x وما قبلها إلى نهاية العمر قبل حل هذه المشكلة ولن تتلقى إصلاحًا، لذا يجب على عمليات النشر على تلك الخطوط الانتقال إلى إصدار مدعوم. بعد الترقية، تُرفض رسالة التحكم التي تحمل تعبير مسند أو لغة تعبير ما لم يُفعَّل الخيار الجديد allowPredicateFromMessage على نقطة نهاية dynamic-router-control؛ ولا يُفعَّل إلا عندما يكون كل مرسل لرسائل التحكم موثوقًا. بالنسبة لعمليات النشر التي لا يمكنها الترقية فورًا، لا تعيد توجيه الرسائل من نواقل غير موثوقة أو مشتركة إلى نقطة نهاية dynamic-router-control. وحيثما يجب أن تعبر رسائل التحكم مثل هذا الناقل، فوثّق المرسل وتأكد من أن المسند ولغة التعبير لكل اشتراك يُضبطان بواسطة المسار بدلًا من أخذهما من الرسالة الواردة، على سبيل المثال بإزالة الترويسات CamelDynamicRouterPredicate وCamelDynamicRouterExpressionLanguage ومسح حقلي predicate وexpressionLanguage في DynamicRouterControlMessage قبل وصولها إلى نقطة النهاية. إزالة لغات التعبير الاختيارية من classpath ليست حلًا بديلًا كافيًا. وكدفاع متعدد الطبقات، قيّد من يمكنه الإرسال إلى النواقل التي تغذي نقطة نهاية التحكم، وعلى 4.23.0 و4.22.1 اضبط الخيار allowedSchemes لنقطة نهاية dynamic-router لتحديد نقاط النهاية التي يجوز أن يسميها destinationUri الخاص بالاشتراك.
الاستخدام المسؤول
استخدم معلومات الثغرات الأمنية فقط على الأنظمة التي تمتلكها أو المرخص لها باختبارها. يرتبط Kitploit ببيانات تعريف البحث العامة ولا يخزن أكواد الاستغلال أو الحمولات الضارة.