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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-85312 — مُعيد إنتاج إثبات مفهوم قابل للتشغيل لـ CVE-2026-85312، يُظهر اختطاف saga في Apache Camel عبر ترويسة Long-Running-Action في Spring Boot وQuarkus. | Kitploit
أدوات/GitHubGitHub/oscerd/cve-2026-85312
أدوات دفاعيةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالتعلم والتعليم
GitHuboscerd/cve-2026-85312

CVE-2026-85312

مُعيد إنتاج إثبات مفهوم قابل للتشغيل لـ CVE-2026-85312، يُظهر اختطاف saga في Apache Camel عبر ترويسة Long-Running-Action في Spring Boot وQuarkus.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-85312 — camel-core: اختطاف الـ saga عبر ترويسة Long-Running-Action

مُعيد إنتاج قابل للتشغيل (proof-of-concept) لثغرة Apache Camel حيث كان SagaProcessor في camel-core يختار منسّق الـ saga من ترويسة الرسالة Long-Running-Action في كل exchange. اسم هذه الترويسة لا يحمل بادئة Camel، لذا فهو يقع خارج مساحة الأسماء التي تُزيلها مرشّحات ترويسات المستهلك — إذ كان بإمكان مُرسِل خارجي تزويدها على رسالة واردة وبالتالي تسمية الـ saga التي ينضم إليها الـ exchange الخاص به، فيربط طلبه بإجراء طويل الأمد بدأه شخص آخر (أو يربط التعويض بإجراء لم يبدأه هو). يقتصر التعرّض على عمليات النشر التي تشغّل sagas، لكن حيثما ينطبق فإن المُرسِل يتحكم في أي saga ينتمي إليه الـ exchange (CWE-20).

بيئة التشغيلالدليلالحزمة التقنية
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-spring-boot 4.22.0 (متأثرة؛ مُصلحة في 4.22.1)
Camel Quarkuscamel-quarkus/Quarkus 3.39.0 + camel-quarkus-saga (Camel 4.22.0، متأثرة؛ ضابط مُصلح CQ 3.40.0 / Camel 4.22.1)

يُظهر كلا الوحدتين السلوك المتأثر و السلوك المُصلح مقابل SagaProcessor الحقيقي في camel-core.

ما الذي يوضحه

يحاكي برنامج التشغيل اختبار الانحدار الخاص بالإصلاح نفسه (SagaHeaderCannotSelectCoordinatorTest). فهو يبني مسار saga from("direct:…").saga().propagation(MANDATORY) مدعومًا بخدمة saga في الذاكرة تسجّل كل معرّف يُطلب منها حلّه، ثم يرسل exchange واحدًا يحمل الترويسة الواردة Long-Running-Action = a-saga-id-from-the-wire — وهو المعرّف الذي سيضعه مُرسِل خارجي على الشبكة. المعيار ببساطة هو أي معرّفات saga تصل إلى الخدمة:

  • المتأثر: يلجأ المعالج إلى الترويسة، فيُبحث عن المعرّف المُزوَّد من الشبكة a-saga-id-from-the-wire — أي أن الرسالة اختارت المنسّق.
  • المُصلح: لا تُستشار الترويسة إلا لخدمة saga تُعلن دعمها لها (خدمة الذاكرة لا تفعل ذلك)، لذا فإن المعرّف المُزوَّد من الشبكة لا يُبحث عنه أبدًا.

في كلا البنائين يفشل الـ exchange ذو MANDATORY في النهاية (لا توجد saga حقيقية للانضمام إليها) — فالثغرة ليست في الفشل بل في أن معرّفًا اختاره المهاجم استُخدم لاختيار المنسّق على الإطلاق، ولهذا يراقب المعيار عملية البحث بدلًا من النتيجة.

# Camel Spring Boot
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: wire id looked up = true; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-85312-saga-header-hijack-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: wire id looked up = false; >>> Not exploited
# Camel Quarkus
cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected (Camel 4.22.0): wire id looked up = true
docker compose down
# Patched control: CQ 3.40.0 ships Camel 4.22.1
mvn clean package -Dcamel-quarkus.version=3.40.0 -Dquarkus.platform.version=3.40.0
java -jar target/quarkus-app/quarkus-run.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: wire id looked up = false

ملخص الثغرة الأمنية

الخاصيةالقيمة
المكوّنcamel-core (SagaProcessor.getCurrentSagaCoordinator)
CWECWE-20 (التحقق غير السليم من المدخلات)
الخطورةمتوسطة
ناقل الهجوميوفّر مُرسِل خارجي ترويسة Long-Running-Action غير المُسبَّقة على رسالة واردة إلى مسار يشغّل نمط saga EIP
التأثيريحدّد المُرسِل اسم الـ saga التي ينضم إليها التبادل — إما بالارتباط بإجراء طويل الأمد يخص طرفًا آخر، أو بإساءة ربط التعويض
الإصدارات المتأثرةمن 4.0.0 قبل 4.18.5، ومن 4.19.0 قبل 4.22.1
الإصدارات المُصلَحة4.18.5، 4.22.1، 4.23.0
JIRACAMEL-24449
الفضلClaude Security Scan Tool

الإشعار الأمني: https://camel.apache.org/security/CVE-2026-85312.html

الوحدة المتأثرة في Quarkus مبنية على CQ 3.39.0 (Camel 4.22.0). أما الضابط المُرقَّع فهو CQ 3.40.0 (Camel 4.22.1).

الإصلاح

أصبح SagaProcessor يتحقق من ترويسة Long-Running-Action فقط عندما تُعلن خدمة الـ saga أنها تشارك في مثل هذا البروتوكول، وذلك عبر الدالة الجديدة CamelSagaService.isLongRunningActionHeaderSupported() (القيمة الافتراضية false؛ وتتجاوزها خدمة LRA لتصبح true). تبقى حالة التبادل الداخلية — التي تصمد أمام removeHeaders("*") — هي الحامل الطبيعي لمعرّف الـ saga، لذا لم يعد بإمكان رسالة أن تختار المنسّق لخدمة لا تشغّل أي منسّق خارجي.

التخفيف إذا تعذّر عليك الترقية

أزل الترويسة عند حدود الثقة باستخدام removeHeaders("Long-Running-Action") على كل مستهلك يقبل رسائل من مُرسِل غير موثوق.

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

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

تنزيل الأداة