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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-84178 — أداة إثبات مفهوم قابلة للتشغيل لإعادة إنتاج CVE-2026-84178، وهو هجوم CSRF على تسجيل الدخول في رد نداء رمز التفويض الخاص بـ camel-oauth في Apache Camel، والذي يستبدل الرموز دون التحقق من الحالة. | Kitploit
أدوات/GitHubGitHub/oscerd/cve-2026-84178
تحليل الثغرات الأمنيةاستغلال تطبيقات الويبأمن الويبالمصادقةالتعلم والتعليم
GitHuboscerd/cve-2026-84178

CVE-2026-84178

أداة إثبات مفهوم قابلة للتشغيل لإعادة إنتاج CVE-2026-84178، وهو هجوم CSRF على تسجيل الدخول في رد نداء رمز التفويض الخاص بـ camel-oauth في Apache Camel، والذي يستبدل الرموز دون التحقق من الحالة.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-84178 — camel-oauth: CSRF لتسجيل الدخول عبر استدعاء رمز التفويض (غياب state)

مُعيد إنتاج قابل للتشغيل لإثبات المفهوم لثغرة Apache Camel حيث لم يكن استدعاء رمز التفويض في OAuth يحمل معامل state يربطه بطلب التفويض الذي بدأ التدفق، ولم يكن يتحقق منه. لذلك يمكن استبدال رمز تفويض تم الحصول عليه في أي متصفح عند نقطة الاستدعاء وربطه بالجلسة التي قدّمته — تزوير طلب عبر المواقع لتسجيل الدخول: يتم تسجيل دخول الضحية بصمت بهوية يتحكم بها المهاجم، فتقع إجراءات الضحية اللاحقة وبياناتها في حساب المهاجم. (كما أن نقطة الاستدعاء غير المُتحقَّق منها نفسها كانت تسمح بالتأثير على هدف إعادة التوجيه بعد المصادقة — إعادة توجيه مفتوحة.) وكما تشير النشرة الأمنية، فإن فحص state يُنفَّذ قبل استبدال الرمز، لذا فإن الفرق قابل للوصول دون أي تفاعل مع مزوّد الهوية.

بيئة التشغيلالدليلالمكدّس التقني
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-oauth 4.22.0 (متأثر؛ مُصلَح في 4.22.1)، الاستدعاء عبر camel-undertow
Camel Quarkuscamel-quarkus/Quarkus 3.39.0 + camel-quarkus-oauth 3.39.0 (Camel 4.22.0، متأثر؛ ضابط مُصلَح 3.40.0 / Camel 4.22.1)، الاستدعاء عبر camel-quarkus-platform-http

يُظهر كلا الوحدتين السلوك المتأثر و السلوك المُصلَح.

ما الذي يوضحه

يعالج المعالج الحقيقي غير المعدَّل OAuthCodeFlowCallback نقطة نهاية الاستدعاء. يتم تسجيل OAuth وهمي في سجل Camel حتى يعمل الاستدعاء دون مزوّد هوية حقيقي — فهو يمثّل مزوّد الهوية فقط، ويسجّل عند استبدال رمز التفويض (والذي يربط، في التدفق الحقيقي، الهوية الناتجة بالجلسة التي قدّمته). يضرب المهاجم ببساطة نقطة الاستدعاء بـ code ودون state مطابق:

  • متأثر: يستبدل الاستدعاء الرمز الذي قدّمه المهاجم ويربط الهوية بالجلسة — HTTP 302 (نجاح تسجيل الدخول). يسجّل الوهمي عملية الاستبدال.
  • مُصلَح: يرفض الاستدعاء بـ HTTP 400 "No authorization code flow in progress" (فهو يتطلب state مطابقًا لطلب التفويض الذي بدأته هذه الجلسة) — ولا يتم استبدال الرمز أبدًا.
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

الناتج المتوقع على البناء المتأثر:

Request: GET /callback?code=ATTACKER-SUPPLIED-AUTH-CODE   (no 'state' parameter)
Callback HTTP status: 302
>>> PROVEN: the callback redeemed the authorization code ... WITHOUT verifying a state parameter ... login CSRF.

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

الخاصيةالقيمة
المكوّنcamel-oauth (استدعاء رمز التفويض، OAuthCodeFlowCallback)
CWECWE-352 (تزوير الطلب عبر المواقع)
الخطورةمتوسطة
ناقل الهجومطلب استدعاء يحمل رمز تفويض دون state مرتبط بطلب التفويض الخاص بالجلسة
التأثيرCSRF في تسجيل الدخول (تسجيل دخول الضحية بهوية يتحكم بها المهاجم)؛ إعادة توجيه مفتوحة من أصل موثوق
الإصدارات المتأثرةمن 4.11.0 قبل 4.18.5، ومن 4.19.0 قبل 4.22.1
الإصدارات المُصلحة4.18.5، 4.22.1، 4.23.0
JIRACAMEL-24437
الفضلClaude Security Scan Tool

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

الإصلاح

أصبح الاستدعاء الآن يحمل ويتحقق من معامل state أحادي الاستخدام مرتبط بطلب التفويض الذي بدأته الجلسة: expectedState = session.removeValue(OAUTH_STATE)، ويُقارَن (بزمن ثابت) بمعامل الاستعلام state. إذا لم تكن هناك عملية جارية، أو لم يتطابق الـ state، فإن الاستدعاء يرفض الطلب قبل استبدال الرمز.

التخفيف إذا لم تتمكن من الترقية

ضع الاستدعاء خلف مكوّن يفرض ربط CSRF عبر state، أو لا تعتمد على استدعاء تدفق رمز OAuth لإنشاء الجلسة، حتى تتمكن من الترقية.

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

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

تنزيل الأداة