CVE-2026-66907
Apache Camel: Camel-Google-Storage: ألحق المستهلك اسم الكائن البعيد بدليل downloadFileName المُهيأ دون تقييد النتيجة
- تم النشر
- 24/08/2026
- محدث
- 25/08/2026
- تخصيص CNA
- apache
- الأدلة المرصودة
- 24/08/2026
CVSS الأساسي
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:Nمنخفض · الثلاثين يومًا القادمة
- المئوية
- 46.1%
- تاريخ الموديل
- 21/09/2026
EPSS هو تقدير إحصائي، وليس يقينًا أو مقياسًا للتأثير. ادمجها مع CVSS وحالة KEV والتعرض وبيئتك.
ملخص
ثغرة اجتياز المسار النسبي في مكوّن Google Storage التابع لـ Apache Camel. تؤثّر هذه المشكلة على Apache Camel: من 4.0.0 إلى ما قبل 4.14.9، ومن 4.15.0 إلى ما قبل 4.18.4، ومن 4.19.0 إلى ما قبل 4.22.0. يُنزّل مستهلك camel-google-storage كائنات Google Cloud Storage إلى نظام الملفات المحلي عند ضبط خيار downloadFileName. يُوثَّق هذا الخيار بوصفه مجلدًا أو اسم ملف، وعندما لا تحتوي قيمته على أي رمز تعبيري يبني المستهلك الوجهة المحلية بإلحاق اسم الكائن بها: يضبط evaluateFileExpression ترويسة اسم الملف في Exchange على اسم الكائن البعيد ويقيّم downloadFileName + "/${file:name}". يُرجع رمز ${file:name} ترويسة اسم الملف كما هي تمامًا، بخلاف ${file:onlyname} الذي يطبّق FileUtil.stripPath عليها. كانت السلسلة الناتجة تُمرَّر مباشرةً إلى new File(result) وإلى blob.downloadTo(file.toPath()) دون أي تطبيع معجمي ودون أي تحقق من بقاء الوجهة داخل الدليل المضبوط. اسم الكائن ليس بيانات يتحكم بها المسار: إذ يسرد المستهلك bucket، ويتنقل عبر كل blob مُعاد، وينشئ Exchange واحدًا لكل كائن من blob.getBlobId().getName() كما هو تمامًا، ولا يُطبَّق خيار filter الذي قد يقيّد تلك الأسماء إطلاقًا ما لم يُضبط صراحةً. أسماء كائنات Google Cloud Storage هي مفاتيح UTF-8 معتّمة يخزّنها الخدمة ويسردها تمامًا كما كُتبت، دون أي توحيد معياري (canonicalization) من جهة الخادم، والشرطة المائلة للأمام (/) هي مجرد اصطلاح عرض للأدلة الزائفة، لذا فإن المفتاح الذي يحتوي مقاطع دليل أصلي يعبر دورة الإرسال والاسترجاع كاملةً دون تغيير. لذلك كان اسم الكائن الذي يحتوي مثل هذه المقاطع يُحلّ إلى موقع خارج دليل downloadFileName المضبوط، مما يسمح لأي شخص قادر على التأثير في الأسماء الموجودة في bucket المستهلَك بأن يجعل Camel ينشئ ملفًا أو يستبدله في موقع من اختياره، بصلاحيات عملية Camel. واعتمادًا على ما يمكن للعملية الكتابة إليه، قد يتصاعد استبدال ملف خارج دليل التنزيل ليتجاوز مجرد فقدان سلامة ذلك الملف. خيار downloadFileName هو معامل مستهلك عادي ولا يحمل أي وسم أمني، فلم يُنبّه أي شيء المستخدمين إلى أن قيمته لم تكن تُفرَض بوصفها حد احتواء. العيب يقتصر على المستهلك فقط؛ فالمُنتِج لا يملك أي مصرف لتنزيل الملفات. مستهلكو تنزيل الملفات الآخرون في Camel - camel-file وcamel-ftp وcamel-smb وcamel-mina-sftp وcamel-azure-files ومسارات تنزيل Azure Storage - قيّدوا تنزيلاتهم المحلية بالفعل بالدليل المضبوط باستخدام فحص لحدود مقاطع المسار؛ وكان camel-google-storage هو مصرف تنزيل مخزن الكائنات المتبقي غير المُشمَل بذلك العمل. يُنصح المستخدمون بالترقية إلى الإصدار 4.22.0 الذي يصلح المشكلة. إذا كان المستخدمون على مسار إصدارات 4.14.x LTS، فيُقترح ترقيتهم إلى 4.14.9. وإذا كان المستخدمون على مسار إصدارات 4.18.x، فيُقترح ترقيتهم إلى 4.18.4. وبالنسبة إلى عمليات النشر التي لا يمكنها الترقية فورًا، اضبط خيار filter على تعبير نمطي لا يقبل إلا أسماء الكائنات البسيطة ذات المقطع الواحد، بحيث يُستبعَد أي اسم يحمل فاصل مسار أو مقطع دليل أصلي قبل إنشاء أي Exchange؛ ولاحظ أنه لا تُطبَّق أي تصفية إطلاقًا عند ترك الخيار دون ضبط، وأن التعبير يُطابَق مع اسم الكائن بالكامل. بدلًا من ذلك، أعطِ downloadFileName تعبيرًا صريحًا لا ينقل المسار البعيد، على سبيل المثال تعبيرًا مبنيًا على ${file:onlyname} بدلًا من ${file:name} الضمني، مع مراعاة أن downloadFileName الذي يحتوي تعبيرًا يُعامَل بوصفه خاضعًا لتحكم مؤلف المسار ولا يشمله فحص الاحتواء المضاف في الإصلاح. وكدفاع في العمق، تعامل مع أسماء الكائنات في أي bucket قابل للكتابة من الخارج بوصفها مدخلات غير موثوقة، ولا تستنبط منها مسارات نظام ملفات محلية.
المصادر
1أدوات إثبات مفهوم لإعادة إنتاج ثغرة اجتياز المسار في Apache Camel camel-google-storage (CVE-2026-66907)، توضح الكتابة التعسفية للملفات عبر downloadFileName، مع تفاصيل الإصدارات المتأثرة والمصححة.
الاستخدام المسؤول
استخدم معلومات الثغرات الأمنية فقط على الأنظمة التي تمتلكها أو المرخص لها باختبارها. يرتبط Kitploit ببيانات تعريف البحث العامة ولا يخزن أكواد الاستغلال أو الحمولات الضارة.