CVE-2026-60093
Apache Camel: Camel-Azure-Storage-DataLake: عملية downloadToFile تبني هدف التنزيل المحلي من اسم المسار البعيد دون تقييده بـ fileDir المُكوَّن
- تم النشر
- 24/08/2026
- محدث
- 25/08/2026
- تخصيص CNA
- apache
- الأدلة المرصودة
- 24/08/2026
CVSS الأساسي
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:Nمنخفض · الثلاثين يومًا القادمة
- المئوية
- 17.7%
- تاريخ الموديل
- 21/09/2026
EPSS هو تقدير إحصائي، وليس يقينًا أو مقياسًا للتأثير. ادمجها مع CVSS وحالة KEV والتعرض وبيئتك.
ملخص
ثغرة اجتياز المسار النسبي في مكوّن Apache Camel Azure-Storage Datalake. تؤثر هذه المشكلة في Apache Camel: من 4.0.0 حتى ما قبل 4.14.9، ومن 4.15.0 حتى ما قبل 4.18.4، ومن 4.19.0 حتى ما قبل 4.22.0. يمكن لمكوّن camel-azure-storage-datalake تنزيل ملف من Azure Data Lake Storage Gen2 إلى نظام الملفات المحلي عبر عملية downloadToFile، فيكتب في الدليل الذي يحدده خيار نقطة النهاية fileDir. تبني DataLakeFileOperations.downloadToFile الهدف المحلي بضم fileDir إلى اسم المسار البعيد تماماً كما أبلغ عنه Azure SDK (new File(fileDir, fileClientWrapper.getFileName()))، ثم تمرر النتيجة مباشرة إلى استدعاء التنزيل في SDK، دون أي تطبيع معجمي ودون التحقق من أن الموقع الذي تم حله يبقى داخل fileDir. الاسم البعيد ليس بيانات يتحكم بها المسار (route-controlled data): فالمستهلك (consumer) يحصي نظام الملفات في DataLakeConsumer.createBatchExchangesFromPath، الذي يسرد المسارات وينشئ تبادلاً واحداً (exchange) لكل إدخال اعتماداً على PathItem.getName() كما هو حرفياً، دون تطبيق أي تصفية للأسماء افتراضياً. لذا فإن اسم المسار الذي يحتوي على مقاطع دليل أصلي يُحل إلى موقع خارج fileDir المكوّن، مما يسمح لأي شخص قادر على التأثير في الأسماء الموجودة في نظام ملفات Data Lake المُستهلك بأن يجعل Camel ينشئ ملفاً أو يكتب فوقه في موقع من اختياره، وبصلاحيات عملية Camel. واعتماداً على ما يمكن للعملية الكتابة إليه، فإن الكتابة فوق ملف خارج دليل التنزيل قد تتصاعد إلى ما هو أبعد من فقدان سلامة ذلك الملف. خيار fileDir هو معامل تكوين عادي ضمن مجموعة الخيارات العامة (common group) ولا يحمل أي علامة أمان، لذا لم يُشر أي شيء للمستخدمين إلى أن قيمته لا تُفرض كحد احتواء. مستهلكات تنزيل الملفات الأخرى في Camel - camel-file وcamel-ftp وcamel-smb وcamel-mina-sftp وcamel-azure-files - قيّدت بالفعل تنزيلاتها المحلية بالدليل المكوّن باستخدام فحص حد مقاطع المسار؛ غير أن مسار التنزيل لمكوّن camel-azure-storage-datalake لم يكن مشمولاً بذلك العمل. يُنصح المستخدمون بالترقية إلى الإصدار 4.22.0 الذي يصلح المشكلة. وإذا كان المستخدمون على سلسلة إصدارات 4.14.x LTS، فمن المستحسن الترقية إلى 4.14.9. وإذا كان المستخدمون على سلسلة إصدارات 4.18.x، فمن المستحسن الترقية إلى 4.18.4. أما بالنسبة لعمليات النشر التي لا يمكنها الترقية فوراً، فقيّد الأسماء التي سيتعامل معها المستهلك باستخدام خيار نقطة النهاية regex، الذي يُطبَّق على كل اسم مسار مُدرج كمطابقة كاملة للنص، بحيث لا تُقبل إلا الأسماء البسيطة ذات المقطع الواحد، ويُستبعد أي اسم يحمل فاصل مسار أو مقطع دليل أصلي قبل إنشاء أي تبادل. وبدلاً من ذلك، تجنب استخدام عملية downloadToFile على أنظمة الملفات غير الموثوقة، واكتب الحمولة من المسار (route) تحت اسم ملف يتحكم فيه المسار نفسه، بدلاً من اسم مأخوذ من قائمة النظام البعيد. وكدفاع متعمق، تعامل مع أسماء الكائنات في أي نظام ملفات Data Lake قابل للكتابة خارجياً كمدخلات غير موثوقة، ولا تستمد منها مسارات لنظام الملفات المحلي.
الاستخدام المسؤول
استخدم معلومات الثغرات الأمنية فقط على الأنظمة التي تمتلكها أو المرخص لها باختبارها. يرتبط Kitploit ببيانات تعريف البحث العامة ولا يخزن أكواد الاستغلال أو الحمولات الضارة.