CVE-2026-95629
Apache Camel: رأس مسار الإخراج غير المُتحقَّق منه في Camel-Docling يتيح كتابة ناتج التحويل إلى دليل عشوائي
- تم النشر
- 26/10/2026
- محدث
- 02/11/2026
- تخصيص CNA
- apache
- الأدلة المرصودة
- 30/10/2026
CVSS الأساسي
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:Lمنخفض · الثلاثين يومًا القادمة
- المئوية
- 27.1%
- تاريخ الموديل
- 04/11/2026
EPSS هو تقدير إحصائي، وليس يقينًا أو مقياسًا للتأثير. ادمجها مع CVSS وحالة KEV والتعرض وبيئتك.
ملخص
ثغرة "التقييد غير السليم لاسم مسار إلى دليل مقيّد" ('Path Traversal') في مكوّن Apache Camel Docling. تؤثر هذه المشكلة في Apache Camel: من 4.15.0 قبل 4.18.5، ومن 4.19.0 قبل 4.22.2. يشغّل DoclingProducer أداة docling الخارجية في وضع CLI، وهو الوضع الافتراضي، ويخبرها بمكان كتابة المستند المحوَّل عبر العلامة --output. عند تعيين ترويسة CamelDoclingOutputFilePath، كانت addOutputDirectoryArguments تمرّر قيمتها إلى تلك العلامة كما هي حرفيًا: لم تكن القيمة تُطبَّع، وكان يُقبل المسار المطلق أو المسار الذي يحتوي على مقاطع .. كما هو، ولم يكن أي خيار من خيارات نقطة النهاية قادرًا على حصره في دليل. يرفض التحقق من الوسائط المخصصة الذي أُضيف في إصلاح CVE-2026-40047 العلامتين --output و -o في ترويسة CamelDoclingCustomArguments ويطلب من المستدعين اختيار دليل الإخراج بهذه الترويسة بدلًا من ذلك، لذا وصلت القيمة الوحيدة التي تحدّد مكان كتابة docling إلى سطر الأوامر دون أي من الفحوص المطبَّقة على الوسائط المخصصة. يكتب Docling نتيجة التحويل، بصيغة Markdown أو HTML أو JSON أو نص، في ذلك الدليل، ويسمّي الملف باسم ملف الإدخال، ثم يزيل المنتج بعده دليله المؤقت فقط، لذا يُترك الملف في مكانه. لذلك كان بإمكان طرف قادر على تعيين الترويسة أن يتسبب في إنشاء مخرجات التحويل في أي دليل يمكن لعملية Camel الكتابة فيه. ومحتوى هذا الملف هو تحويل المستند الذي تحمله الرسالة، لذا يتشكّل حسب من يوفّر ذلك المستند دون أن يُكتب بايتًا ببايت، وعندما يصل محتوى المستند في جسم الرسالة يخزّنه المنتج تحت اسم مؤقت عشوائي، وهو ما يحمله ملف الإخراج بعد ذلك. تنتمي الترويسة إلى نطاق ترويسات Camel، الذي يزيله المستهلكون الذين يطبّقون تصفية الترويسات الافتراضية في Camel، مثل مستهلكي JMS وKafka، من الرسائل الواردة، لذا تُبلَغ المشكلة حيث يمرّر مسار (route) قيمًا متأثرة من الخارج إلى الترويسة أو حيث يعيّن مستهلك الترويسات الواردة دون تلك التصفية. لا يستخدم وضع docling-serve الترويسة. يُنصح المستخدمون بالترقية إلى الإصدار 4.23.0، الذي يصلح المشكلة. إذا كان المستخدمون على سلسلة إصدارات 4.22.x، فيُقترح عليهم الترقية إلى 4.22.2. وإذا كان المستخدمون على سلسلة إصدارات 4.18.x، فيُقترح عليهم الترقية إلى 4.18.5. يضيف الإصلاح خيار نقطة النهاية outputBaseDirectory الذي يكون غير معيَّن افتراضيًا، لذا بعد الترقية، عيّنه على كل نقطة نهاية docling يمكن لترويسة CamelDoclingOutputFilePath فيها أن تحمل قيمة متأثرة من خارج النشر؛ فبدونه تُطبَّع الترويسة لكنها لا تزال قادرة على تسمية أي دليل. وصلت خطوط الإصدارات 4.15.x إلى 4.17.x و4.19.x إلى 4.21.x إلى نهاية العمر قبل حل هذه المشكلة ولن تتلقى إصلاحًا، لذا يجب على عمليات النشر عليها الانتقال إلى إصدار مدعوم. بالنسبة لعمليات النشر التي لا يمكنها الترقية فورًا، لا تبنِ ترويسة CamelDoclingOutputFilePath من قيم تنشأ خارج النشر، وأزل تلك الترويسة من الرسائل التي تصل من الخارج قبل أن تبلغ نقطة نهاية docling، وتأكد من أن المستهلكين الذين يعيّنون ترويسات الرسائل الواردة يُسقطون نطاق ترويسات Camel، بحيث لا يختار دليل الإخراج سوى المسار (route) نفسه.
الاستخدام المسؤول
استخدم معلومات الثغرات الأمنية فقط على الأنظمة التي تمتلكها أو المرخص لها باختبارها. يرتبط Kitploit ببيانات تعريف البحث العامة ولا يخزن أكواد الاستغلال أو الحمولات الضارة.