CVE-2026-79984
Apache Camel: قام camel-mina-sftp بحل المسار البعيد لملف تم استطلاعه من الاسم المُبلَّغ عنه في قائمة دليل الخادم دون تقييده بالدليل الذي تتم استطلاعه، لذا يمكن نقل إدخال في القائمة يحتوي على مقاطع اجتياز إلى خارج
- تم النشر
- 19/10/2026
- محدث
- 20/10/2026
- تخصيص CNA
- apache
- الأدلة المرصودة
- 17/10/2026
CVSS الأساسي
cvelist · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:Nملخص
ثغرة "التقييد غير الصحيح لاسم مسار إلى دليل محظور" ('Path Traversal') في مكوّن Apache Camel Mina SFTP. تؤثر هذه المشكلة على Apache Camel: من 4.18.0 قبل 4.18.5، ومن 4.19.0 قبل 4.22.1. تقوم مستهلكات الملفات البعيدة في Camel بالاستعلام الدوري عن دليل على خادم بعيد وبناء المسار البعيد المطلق لكل ملف عبر دمج الدليل المُهيَّأ مع اسم الملف المُبلَّغ عنه في قائمة محتويات الدليل على الخادم. لم يُطبِّق هذا الدمج (FtpUtils.absoluteFilePath وGenericFileConsumer) أي تطبيع معجمي ولا أي تحقق من بقاء الناتج داخل الدليل الذي تتم الاستعلام عنه دوريًا، وأصبح المسار الناتج هو المعامل لكل عملية بعيدة لاحقة على الملف: الاسترجاع (FtpOperations.retrieveFile / SftpOperations، الذي يُوصَل إليه من GenericFileConsumer حيث يُؤخذ اسم الاسترجاع حرفيًا من GenericFile.getAbsoluteFilePath)، والحذف عند delete=true (GenericFileDeleteProcessStrategy)، وإعادة التسمية عند تهيئة move أو preMove أو moveFailed أو readLock=rename (GenericFileProcessStrategySupport وGenericFileRenameExclusiveReadLockStrategy). لم يُجرِ أيٌّ من isValidFile أو isMatched أي تحقق من الاحتواء. لذلك فإن أي مدخل في قائمة المحتويات ليس مقطع مسار واحدًا كان يُحلّ إلى مسار خارج دليل الاستعلام الدوري المُهيَّأ، مما يجعل Camel يقرأ أو يحذف أو يعيد تسمية ملفات خارجه باستخدام بيانات اعتماد نقطة النهاية نفسها. اسم قائمة المحتويات ليس بيانات يتحكم بها المسار. بل يوفره الخادم البعيد، وقناة التحكم في FTP لا تحمل أي حماية للتكامل على الإطلاق، لذا يمكن لمهاجم على المسار إعادة كتابة استجابة LIST دون امتلاك أي بيانات اعتماد؛ كما يمكن لخادم مخترق أو خبيث أو متعدد المستأجرين، أو خادم مدعوم بنظام ملفات افتراضي، إصدار مثل هذا الاسم مباشرة. الاسترجاع قابل للوصول في تهيئة المستهلك الافتراضية، حيث تُنزِّل المستهلكات البعيدة كل ملف مُدرَج؛ أما الحذف وإعادة التسمية فيتطلبان إضافةً إلى ذلك أحد خيارات التصرف المذكورة أعلاه، وكلها شائعة. الهروب من الدليل الذي هُيِّئ Camel للاستعلام عنه دوريًا غير مشروط، بينما يعتمد الهروب من حدود حساب الخادم نفسه إضافةً إلى ذلك على ما إذا كان ذلك الخادم يحصر الحساب. خيار jailStartingDirectory، المُوثَّق بأنه يقيّد Camel على دليل البداية والمُفعَّل افتراضيًا، كان يحكم عمليات الكتابة من المنتج، ومنذ عمل احتواء localWorkDirectory، عمليات التنزيل من المستهلك إلى دليل العمل المحلي - لكنه لم يقيّد هذا المعامل البعيد، لذا ادّعى اسمه ووصفه حدًّا لم يُفرَض هنا. كان قد سبق التعرف على نقطة الدخول نفسها على الجانب المحلي: فقد قُيِّد مسار التنزيل localWorkDirectory بحيث لا يمكن لاسم ملف بعيد يحتوي على مقاطع دليل أب أن يُحلّ خارج دليل العمل المحلي. وكان المعامل البعيد هو النصف المتبقي من ذلك السطح. يوفّر هذا الأثر مخطط mina-sftp، وهو تنفيذ بديل لـ SFTP يستمد مستهلكه من الفئة الأساسية RemoteFileConsumer نفسها وبالتالي ورث الحل غير المقيَّد نفسه. قم بالترقية إلى Apache Camel 4.23.0، الذي يُصلح المشكلة. يجب على المستخدمين على سلسلة إصدارات 4.22.x الترقية إلى 4.22.1. يجب على المستخدمين على سلسلة إصدارات 4.18.x LTS الترقية إلى 4.18.5. وصلت سلسلة 4.14.x إلى نهاية العمر الافتراضي ولا تتلقى هذا الإصلاح؛ يجب على المستخدمين عليها الانتقال إلى سلسلة إصدارات مدعومة.
الاستخدام المسؤول
استخدم معلومات الثغرات الأمنية فقط على الأنظمة التي تمتلكها أو المرخص لها باختبارها. يرتبط Kitploit ببيانات تعريف البحث العامة ولا يخزن أكواد الاستغلال أو الحمولات الضارة.