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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-49086 — مُعيد إنتاج لإثبات المفهوم (PoC) لـ CVE-2026-49086 يوضح تجاوز رأس التوجيه لنائب مخدوع في Apache Camel camel-dapr، مما يتيح إعادة توجيه الرسائل واستخراج البيانات عبر حقول CloudEvent غير موثوقة. | Kitploit
أدوات/GitHubGitHub/oscerd/cve-2026-49086
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمالفريق الأحمر
GitHuboscerd/cve-2026-49086

CVE-2026-49086

مُعيد إنتاج لإثبات المفهوم (PoC) لـ CVE-2026-49086 يوضح تجاوز رأس التوجيه لنائب مخدوع في Apache Camel camel-dapr، مما يتيح إعادة توجيه الرسائل واستخراج البيانات عبر حقول CloudEvent غير موثوقة.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

camel-dapr تجاوز رأس التوجيه لمستهلك camel-dapr / مكرر الوكيل المخدوع (CVE-2026-49086)

يعرض هذا المشروع خلل تجاوز رأس التوجيه (الوكيل المخدوع) في مكون camel-dapr الخاص بـ Apache Camel، والمُتتبع كـ CVE-2026-49086.

ينسخ مستهلك Dapr للنشر/الاشتراك (DaprPubSubConsumer) حقول الحدث السحابي الوارد (غير الموثوق) إلى رؤوس رسائل التبادل. اثنان منها — pubsubName و topic — هما رؤوس توجيه باتجاه المُنتِج (CamelDaprPubSubName / CamelDaprTopic). عندما ينشر نفس المسار لاحقًا باستخدام مُنتِج dapr:pubSub، فإن DaprConfigurationOptionsProxy يفضل قيمة الرأس على القيمة المُهيأة لنقطة النهاية. لذا فإن الغلاف الوارد، الذي يتحكم فيه مرسل الرسالة غير الموثوق، يتجاوز بصمت المكان الذي يعيد المسار النشر فيه:

root@kitploit:~
// DaprPubSubConsumer.createServiceBusExchange (affected 4.18.2) — untrusted envelope -> routing headers
message.setHeader(DaprConstants.PUBSUB_NAME, cloudEvent.getPubsubName());   // CamelDaprPubSubName
message.setHeader(DaprConstants.TOPIC,       cloudEvent.getTopic());        // CamelDaprTopic

// DaprConfigurationOptionsProxy.getOption (affected 4.18.2) — header WINS over endpoint config
return ObjectHelper.isEmpty(exchange) || ObjectHelper.isEmpty(exchangeFn.apply(exchange))
        ? fallbackFn.get()            // endpoint config (e.g. audit-broker/audit-log)
        : exchangeFn.apply(exchange); // the header copied from the inbound CloudEvent

في مسار يستهلك من موضوع ويعيد النشر إلى موضوع آخر (نمط تدقيق/إعادة توجيه/نشر واسع شائع)، يقوم الفاعل الذي يمكنه النشر إلى الموضوع المشترك بتعيين pubsubName/topic الخاص بـ CloudEvent ويُعيد توجيه الرسالة المعاد نشرها إلى مكون Dapr للنشر/الاشتراك + موضوع عشوائي — مما يسرق الحمولة إلى وسيط يمكن للمهاجم الوصول إليه، أو يتجاوز التوجيه/قوائم التحكم بالوصول المقصودة. هذا هو الوكيل المخدوع: يعيد التطبيق النشر باستخدام بيانات اعتماد Dapr الخاصة به إلى وجهة اختارها المهاجم.

يُظهر هذا البرهان التأثير كـ إعادة توجيه الرسائل / تسريب البيانات (CWE-441، من CWE-20).

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

ملخص الثغرة

الخصائصالقيمة
المكونcamel-dapr
الفئة المتأثرةorg.apache.camel.component.dapr.consumer.DaprPubSubConsumer (تعيّن رؤوس PUBSUB_NAME/TOPIC من حدث CloudEvent الوارد)
CWECWE-20 (التحقق غير الصحيح من الإدخال) / CWE-441 (الوكيل غير المقصود / الوكيل المخدوع)
التأثيرإعادة توجيه الرسالة المعاد نشرها إلى مكون Dapr للنشر/الاشتراك + موضوع عشوائي (تسريب / تجاوز التوجيه وACL)
المتطلبات المسبقةمسار يستهلك من موضوع dapr:pubSub ويعيد النشر عبر مُنتِج dapr:pubSub؛ يمكن للمهاجم النشر إلى الموضوع المشترك
الإصدارات المتأثرة4.12.0 حتى 4.14.7، 4.15.0–4.18.2، 4.19.0–4.20.x
الإصدارات المُصلحة4.14.8، 4.18.3، 4.21.0
JIRACAMEL-23630 (PR apache/camel#23886)
الفضلLeon Zlobecki

يمنع الإصلاح المستهلك من تعيين رأسي التوجيه (CamelDaprPubSubName / CamelDaprTopic)؛ وتبقى رؤوس بيانات CloudEvent الأخرى دون تغيير. بعد ذلك يستخدم المُنتِج دائمًا النشر/الاشتراك + الموضوع المُهيأ لنقطة النهاية. (تمت أيضًا إضافة DaprHeaderFilterStrategy لتناسق الكتالوج، لكن تغيير رأس التوجيه هو الإصلاح الفعّال.)

لماذا لا حاجة إلى Dapr sidecar

الثغرة بالكامل في Camel — يقوم المستهلك بنسخ CloudEvent.pubsubName/topic إلى رؤوس التوجيه، والمُنتِج يفضل تلك الرؤوس. جانب Dapr مجرد ناقل. يحقن هذا المكرر عملاء Dapr وهميين (client=#mockClient، previewClient=#mockPreview) بحيث يتم تشغيل DaprPubSubConsumer و DaprPubSubHandler الحقيقيين دون تغيير بدون جانب: يلتقط العميل التجريبي الوهمي مستمع الاشتراك، ويسجل العميل الوهمي هدف النشر. ثم يقوم برنامج تشغيل المهاجم بتسليم حدث سحابي مزيف إلى المستمع الملتقط — تمامًا ما يفعله مرسل قادر على النشر إلى الموضوع المشترك.

المسار الضحية

root@kitploit:~
from("dapr:pubSub?pubSubName=orders-broker&topic=orders&previewClient=#mockPreview&client=#mockClient")
    .to("dapr:pubSub?pubSubName=audit-broker&topic=audit-log&client=#mockClient&previewClient=#mockPreview");

يقصد المؤلف أن تنعكس كل طلب إلى audit-broker/audit-log الثابت. ولكن لأن المستهلك ينسخ pubsubName/topic من الغلاف الوارد إلى رؤوس التوجيه، فإن مُنتِج التدقيق ينشر إلى أي شيء يُسميه الغلاف — وليس أبدًا إلى تيار التدقيق المُهيأ.

هيكل المستودع

root@kitploit:~
CVE-2026-49086/
├── pom.xml                 # camel-dapr 4.18.2 (dapr-sdk 1.16.1 transitive) + spring-boot-web
├── Dockerfile
├── docker-compose.yml      # single self-contained service
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── DaprMockConfig.java       # mock DaprClient + DaprPreviewClient (dynamic proxies; no sidecar)
    │   ├── PublishRecorder.java      # records where the producer actually published
    │   ├── SubscriptionRegistry.java # captures the consumer's subscription listener
    │   ├── VictimRoutes.java         # dapr:pubSub subscribe -> dapr:pubSub publish (audit)
    │   └── ExploitController.java    # attacker: deliver forged CloudEvents; compare publish target
    └── resources/
        └── application.properties

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

  • Docker و Docker Compose
  • Java 17+ و Maven 3.8+

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

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

المخرجات المتوقعة

root@kitploit:~
=== CVE-2026-49086 — تجاوز رأس التوجيه لمستهلك camel-dapr (الوكيل المخدوع) ===

نية المسار: عكس كل طلب إلى تيار تدقيق ثابت
    .to("dapr:pubSub?pubSubName=audit-broker&topic=audit-log")

1) حدث طلب عادي (غلاف pubsub=orders-broker topic=orders)
     نسخة التدقيق نُشرت فعليًا إلى: orders-broker / orders
     -> بالفعل ليست audit-broker/audit-log المُهيأة: حقول التوجيه من الغلاف تسربت إلى المُنتِج.

2) حدث طلب ضار (غلاف مزيف: pubsub=attacker-broker topic=exfil-secrets)
     نسخة التدقيق نُشرت فعليًا إلى: attacker-broker / exfil-secrets
     بيانات الطلب المسربة: {"orderId":"A-1002","card":"4111-2222-3333-4444"}

>>> تم الإثبات: تجاوز pubsubName/topic الخاص بـ CloudEvent الوارد هدف التدقيق الثابت في المسار،
>>> لذا فإن المهاجم الذي يمكنه النشر إلى 'orders' يُعيد توجيه نسخة الطلب إلى
>>> مكون نشر/اشتراك + موضوع عشوائي (تسريب بيانات / تجاوز توجيه): true

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

الترقية إلى 4.14.8 / 4.18.3 / 4.21.0 (CAMEL-23630). بعد الإصلاح، لم يعد المستهلك يعيّن CamelDaprPubSubName / CamelDaprTopic، لذلك يستخدم مُنتِج dapr:pubSub الموجود في اتجاه تيار المستهلك dapr:pubSub مكون النشر/الاشتراك والموضوع المُهيأين لنقطة النهاية الخاصة به.

التخفيف

لحين الترقية، قم بإزالة رؤوس التوجيه بين المستهلك وأي مُنتِج dapr:pubSub في المسار (على سبيل المثال removeHeaders("CamelDaprPubSubName,CamelDaprTopic"))، وحدد النشر/الاشتراك + موضوع إعادة النشر من مصدر موثوق.

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

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

تنزيل الأداة