Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-95628 — أداة إثبات مفهوم قابلة للتشغيل لإعادة إنتاج CVE-2026-95628، وهي ثغرة في التحقق من صحة المسارات المطلقة في Apache Camel camel-docling، مع بيئتي اختبار Spring Boot وQuarkus والتحقق من الإصلاح. | Kitploit
أدوات/GitHubGitHub/oscerd/cve-2026-95628
أدوات دفاعيةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالتعلم والتعليم
GitHuboscerd/cve-2026-95628

CVE-2026-95628

أداة إثبات مفهوم قابلة للتشغيل لإعادة إنتاج CVE-2026-95628، وهي ثغرة في التحقق من صحة المسارات المطلقة في Apache Camel camel-docling، مع بيئتي اختبار Spring Boot وQuarkus والتحقق من الإصلاح.

عرض المستودع
منذ 2 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2026-95628 — camel-docling: لم يرفض validatePathSafety المسارات المطلقة (إصلاح غير مكتمل لـ CVE-2026-40047)

مُعيد إنتاج قابل للتشغيل (proof-of-concept) لثغرة Apache Camel حيث كان فحص مسار الوسيط المخصص الذي قدّمه إصلاح CVE-2026-40047 يبحث فقط عن التجاوز النسبي. فقد كان يرفض قيمة تحتوي على ../ وقيمة لا يزال شكلها المُطبَّع يحوي عنصر .. — لكنه لم يتحقق قط مما إذا كانت القيمة مسارًا مطلقًا، والمسار المطلق الذي لا يحوي مقاطع تجاوز لا يحوي أيًّا منهما.

بيئة التشغيلالدليلالمكدّس
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-docling 4.22.1
Camel Quarkuscamel-quarkus/Camel Quarkus 3.39.0 (Quarkus 3.39.0, Camel 4.22.0)

تشغيله

cd camel-spring-boot          # or: cd camel-quarkus
mvn clean package
docker compose up -d --build
until [ "$(curl -s http://localhost:8080/exploit/ready)" = "Started" ]; do sleep 1; done
curl -s http://localhost:8080/exploit/attack
docker compose down

على إصدار متأثر (متطابق على كلا زمني التشغيل):

1) A relative traversal value, which the CVE-2026-40047 fix does reject
     header CamelDoclingCustomArguments = [--artifacts-path, ../../../../etc]
     REJECTED by Camel: IllegalArgumentException: Custom argument at index 1 contains a relative path traversal sequence

2) Traversal hidden behind redundant separators - also rejected (normalized first)
     header CamelDoclingCustomArguments = [--artifacts-path, models/./../../../../etc]
     REJECTED by Camel: IllegalArgumentException: Custom argument at index 1 contains a relative path traversal sequence

3) An ABSOLUTE path, which contains no traversal sequence at all
     header CamelDoclingCustomArguments = [--artifacts-path, /etc]
     argv docling received: --artifacts-path /etc --to md --ocr-lang en --output /tmp/docling-... /tmp/docling-.../docling-....tmp

4) The same, attached to the flag after an equals sign
     header CamelDoclingCustomArguments = [--artifacts-path=/root/.ssh]
     argv docling received: --artifacts-path=/root/.ssh --to md --ocr-lang en --output /tmp/docling-... /tmp/docling-.../docling-....tmp

>>> PROVEN: ...

تُظهر الفحوصات 1 و2 أن إصلاح CVE-2026-40047 يؤدي وظيفته. أما الفحصان 3 و4 فيمثلان الثغرة المتبقية: العلم موجود في قائمة السماح الخاصة بذلك الإصلاح (--artifacts-path يخبر docling بمكان العثور على مخرجات نموذجه)، والقيمة تمرّ في كلا صيغتي الوسيط — عنصر قائمة منفصل يتبع العلم، وملحق بعد علامة = . وبالتالي فإن طرفًا قادرًا على اختيار الوسائط المخصصة يمكنه توجيه عملية docling إلى أي دليل يمكن لعملية Camel الوصول إليه، خارج دليل العمل الذي كان من المفترض أن يُبقي الفحص قيم المسارات فيه، وهي بالضبط النتيجة التي كان الإصلاح السابق يهدف إلى منعها.

كيف تم ربطه

لا حاجة إلى تثبيت docling. فالعيب يكمن في سطر الأوامر الذي يبنيه Camel، لذا فإن خيار doclingCommand في نقطة النهاية يشير إلى بديل تسجيلي لواجهة سطر الأوامر (CLI) يكتب متجه الوسائط الذي تلقاه إلى ملف. يعمل DoclingProducer الحقيقي، وvalidateCustomArguments() الحقيقي، وvalidatePathSafety() الحقيقي؛ ولا يُستبدل سوى الأداة الخارجية.

فقط وضع CLI، وهو الوضع الافتراضي، يمرر الوسائط المخصصة إلى docling.

قابلية الوصول

ينتمي CamelDoclingCustomArguments إلى مساحة أسماء ترويسات Camel، والتي يزيلها المستهلكون الذين يطبقون تصفية الترويسات الافتراضية في Camel — مثل مستهلكي JMS وKafka — من الرسائل الواردة. لذلك تُبلَغ المشكلة حيث يمرر مسار قيمًا متأثرة خارجيًا إلى الترويسة، أو حيث يعيّن مستهلك ترويسات واردة دون تلك التصفية.

ملخص الثغرة

الخاصيةالقيمة
المكوّنcamel-docling (DoclingProducer.validatePathSafety())
CWECWE-22 (تقييد غير صحيح لاسم مسار إلى دليل محظور)
الخطورةمتوسطة
متجه الهجوممسار مطلق كقيمة لعلم شبيه بالمسار مدرج في قائمة السماح ضمن CamelDoclingCustomArguments
التأثيرتوجيه عملية docling إلى أي دليل يمكن لعملية Camel الوصول إليه
الإصدارات المتأثرةمن 4.15.0 قبل 4.18.5، ومن 4.19.0 قبل 4.22.2
الإصدارات المُصلحة4.18.5، 4.22.2، 4.23.0
JIRACAMEL-24893
الفضلZhixi "Jace" Sun، باحث أمني مستقل

الإشعار: https://camel.apache.org/security/CVE-2026-95628.html

ذو صلة: هذا إصلاح غير مكتمل لـ CVE-2026-40047، وترويسة مسار الإخراج لنفس المكوّن هي CVE-2026-95629.

الإصلاح

أصبح validatePathSafety الآن يرفض أيضًا قيمة وسيط مخصص شبيهة بالمسار تكون مسارًا مطلقًا، فيُفشل التبادل برسالة IllegalArgumentException تفيد بأن الوسيط يجب ألا يكون مسارًا مطلقًا. ولأن الفحص يقع في المساعد المشترك الذي يتحقق من كل قيمة شبيهة بالمسار، فإن كلا صيغتي الوسيط مشمولتان.

أُصلح على main في apache/camel#26738 (fd3bc8e7)، ونُقل إلى camel-4.22.x في #26743 (e9233c37) وإلى camel-4.18.x في #26744 (59d30af1).

التحقق من بناء مُصلح

اضبط camel.version على 4.22.2 وشغّله مرة أخرى. تم التحقق مقابل 4.22.1 → 4.22.2:

3) An ABSOLUTE path, which contains no traversal sequence at all
     REJECTED by Camel: IllegalArgumentException: Custom argument at index 1 must not be an absolute path

4) The same, attached to the flag after an equals sign
     REJECTED by Camel: IllegalArgumentException: Custom argument at index 0 must not be an absolute path

>>> NOT reproduced: the absolute path was rejected too.

التخفيف دون الترقية

لا تُنشئ CamelDoclingCustomArguments من قيم تأتي من خارج بيئة النشر؛ أزل هذا الترويس من الرسائل الواردة من الخارج قبل أن تصل إلى نقطة نهاية docling؛ وتأكد من أن المستهلكين الذين يعيّنون الترويسات الواردة يتجاهلون نطاق ترويسات Camel، بحيث لا تختار الوسائط المخصصة إلا من خلال المسار.

إخلاء المسؤولية

نُشر هذا المستودع لأغراض تعليمية ودفاعية: لمساعدة مستخدمي Apache Camel على فهم الثغرة، والتحقق مما إذا كانوا متأثرين بها، وتأكيد أن الترقية تحلّها. لا تستخدم هذه المواد ضد أنظمة لا تملكها أو لا تديرها.

تنزيل الأداة