CVE-2026-43866
أباتشي كاميل، أباتشي كاميل: كاميل JMS - تجاوز إصلاح CVE-2026-40860 عبر DefaultExchangeHolder
- تم النشر
- 06/07/2026
- محدث
- 06/07/2026
- تخصيص CNA
- apache
- الأدلة المرصودة
- 06/08/2026
CVSS الأساسي
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:Lمنخفض · الثلاثين يومًا القادمة
- المئوية
- 49.5%
- تاريخ الموديل
- 21/09/2026
EPSS هو تقدير إحصائي، وليس يقينًا أو مقياسًا للتأثير. ادمجها مع CVSS وحالة KEV والتعرض وبيئتك.
ملخص
# ثغرة إلغاء تسلسل البيانات غير الموثوقة في Apache Camel ثغرة إلغاء تسلسل البيانات غير الموثوقة في Apache Camel، وتحديدًا في مكوّن Apache Camel JMS. يقوم `JmsBinding.extractBodyFromJms()` في camel-jms - وما يعادله `JmsBinding` في camel-sjms - بإلغاء تسلسل حمولة رسالة JMS ObjectMessage الواردة عبر `jakarta.jms.ObjectMessage.getObject()` كلما كان خيار `mapJmsMessage` مفعّلًا (وهو الافتراضي) وكان Camel يعمل كمستهلك JMS. أضاف التصحيح الأمني CVE-2026-40860 فحصًا للفئات بعد إلغاء التسلسل يرفض الفئات خارج قائمة السماح الافتراضية `java.**;javax.**;org.apache.camel.**;!*`. ومع ذلك، فإن `org.apache.camel.support.DefaultExchangeHolder` نفسه يقع ضمن مساحة الأسماء المسموح بها `org.apache.camel.**`، لذا فإن رسالة ObjectMessage التي يكون كائنها العلوي `DefaultExchangeHolder` تجتاز الفحص. يقوم الجانب المستقبِل بعد ذلك باستدعاء `DefaultExchangeHolder.unmarshal()` عليها دون الحاجة إلى تفعيل خيار `transferExchange` - وهو حد ثقة غير متماثل، حيث إن الجانب المُرسِل يقيّد معالجة ObjectMessage وtransferExchange بينما الجانب المستقبِل لا يفعل ذلك - مما يكتب كل حقل غير فارغ من الحامل إلى Exchange: نص الرسالة، وترويسات IN وOUT، وخصائص التبادل، والمتغيرات، ومعرّف التبادل، والاستثناء. يمكن للمهاجم الذي يستطيع نشر رسالة ObjectMessage إلى قائمة انتظار أو موضوع يستهلكه تطبيق Camel متأثر، حقن حالة Exchange تعسفية باستخدام أنواع java.lang وjava.util الموثوقة عالميًا فقط، دون الحاجة إلى سلسلة أدوات إلغاء تسلسل، للتلاعب بالتوجيه والترويسات وخصائص التبادل ومعالجة الأخطاء. ينطبق نفس المعالجة على camel-sjms وcamel-sjms2، وعلى مكوّنات عائلة JMS المبنية على JmsComponent وJmsBinding: camel-amqp وcamel-activemq وcamel-activemq6. هذا تجاوز لإصلاح CVE-2026-40860 وليس خللًا فيه. تؤثر هذه المشكلة على Apache Camel: من 3.0.0 قبل 4.14.8، ومن 4.15.0 قبل 4.18.3، ومن 4.19.0 قبل 4.21.0؛ Apache Camel: من 3.0.0 قبل 4.14.8، ومن 4.15.0 قبل 4.18.3، ومن 4.19.0 قبل 4.21.0. يُنصح المستخدمون بالترقية إلى الإصدار 4.21.0 الذي يصلح المشكلة. إذا كان المستخدمون على مسار إصدارات LTS 4.14.x، فمن المقترح الترقية إلى 4.14.8. إذا كان المستخدمون على مسار إصدارات 4.18.x، فمن المقترح الترقية إلى 4.18.3. بعد الترقية، يتم تعطيل معالجة JMS ObjectMessage افتراضيًا في camel-jms وcamel-sjms ومكوّنات عائلة JMS (خيار جديد `objectMessageEnabled` يكون افتراضيًا false على مستوى المكوّن ونقطة النهاية)، لذا لن يتم إلغاء تسلسل رسالة ObjectMessage الواردة - بما في ذلك حمولة DefaultExchangeHolder - ما لم يتم تفعيل الخيار صراحةً؛ فعّل `objectMessageEnabled=true` فقط عندما تكون وجهة JMS المستهلكة مغذّاة حصريًا من منتجين موثوقين. بالنسبة للنشرات التي لا يمكنها الترقية فورًا، قيّد وصول النشر إلى قوائم الانتظار والمواضيع التي يستهلكها Camel بحيث يقتصر على المنتجين الموثوقين عبر تفويض وسيط JMS، ولا تعرّض مستهلكي JMS الذين يربطون أجسام ObjectMessage بشبكات غير موثوقة؛ قائمة السماح لإلغاء التسلسل لدى مزوّد JMS لا تخفف هذا التجاوز المحدد لأن الحمولة المصمّمة تستخدم فئات موثوقة عالميًا فقط.
الاستخدام المسؤول
استخدم معلومات الثغرات الأمنية فقط على الأنظمة التي تمتلكها أو المرخص لها باختبارها. يرتبط Kitploit ببيانات تعريف البحث العامة ولا يخزن أكواد الاستغلال أو الحمولات الضارة.