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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-47883 — إثبات مفهوم بسيط لثغرة إعادة التوجيه المفتوحة في Spring Framework UrlHandlerFilter (CVE-2026-47883)، توضح كيف تُنتج طلبات الشرطة المائلة المزدوجة المُصمّمة بعناية ترويسات Location يتحكم فيها المهاجم. | Kitploit
أدوات/GitHubGitHub/daehyuh/cve-2026-47883
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويب
GitHubdaehyuh/cve-2026-47883

CVE-2026-47883

إثبات مفهوم بسيط لثغرة إعادة التوجيه المفتوحة في Spring Framework UrlHandlerFilter (CVE-2026-47883)، توضح كيف تُنتج طلبات الشرطة المائلة المزدوجة المُصمّمة بعناية ترويسات Location يتحكم فيها المهاجم.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-47883: Spring Framework UrlHandlerFilter Open Redirect PoC

هذا المستودع هو PoC للحد الأدنى من إعادة الإنتاج للثغرة CVE-2026-47883 التي تم الإعلان عنها عبر الاستشارة الأمنية الرسمية من Spring.

  • الاستشارة الرسمية: https://spring.io/security/cve-2026-47883/
  • العنوان الرسمي: Spring Framework Open Redirect in UrlHandlerFilter
  • درجة الخطورة: Medium
  • CVSS v3.1: 5.4 (AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N)
  • CWE: CWE-601 — URL Redirection to Untrusted Site (Open Redirect)
  • تاريخ الإفصاح: 2026-08-20

ملخص الثغرة

عند تكوين UrlHandlerFilter في Spring Framework بنمط واسع جدًا ووضع redirect، يمكن إنشاء ترويسة Location تشير إلى origin خارجي، مما قد يؤدي إلى حدوث open redirect. تنص الاستشارة الأمنية الرسمية من Spring على أن كلا المتغيرين من الفلتر في Spring MVC وSpring WebFlux يقعان ضمن نطاق التأثير.

في مسار Servlet الخاص بهذا الـ PoC، يتم استخدام موقع redirect في ترويسة الاستجابة بعد إزالة الشرطة المائلة اللاحقة (trailing slash) من URI الخاص بالطلب.

root@kitploit:~
String location = trimTrailingSlash(request.getRequestURI());
response.setHeader(HttpHeaders.LOCATION, location);

إذا كان URI الخام للطلب هو //attacker.example/، فإن النتيجة ستكون //attacker.example. وفقًا لـ RFC 3986 §4.2، فإن //attacker.example هو مرجع مسار شبكة (network-path reference)، وبالتالي يمكن للمتصفح تفسيره كعنوان خارجي يحافظ على المخطط (scheme) الحالي (مثل https://attacker.example).

شروط الحدوث

يستخدم هذا الـ PoC الشروط التالية:

  • استخدام إصدار متأثر من Spring Framework.
  • تسجيل UrlHandlerFilter في وضع redirect.
  • تطبيق نمط واسع جدًا مثل /**.
  • قدرة المهاجم على إيصال هدف طلب خام (raw request target) يبدأ بـ // إلى الخادم.
root@kitploit:~
UrlHandlerFilter.trailingSlashHandler("/**")
    .redirect(HttpStatus.PERMANENT_REDIRECT)
    .build();

نطاق التأثير

القطع (artifacts) المتأثرة وفقًا للاستشارة الرسمية:

  • org.springframework:spring-webmvc
  • org.springframework:spring-webflux

الإصدارات المتأثرة:

  • Spring Framework 7.0.0 - 7.0.8
  • Spring Framework 6.2.0 - 6.2.19

الإصدارات المصححة:

الإصدار المصححالتوفر
7.0.9OSS
7.0.8.1Enterprise Support Only
6.2.20Enterprise Support Only

ما الذي يوضحه هذا الـ PoC

UrlHandlerFilterBootServletIntegrationTest (إعادة الإنتاج الرئيسية)

يتم تشغيل تطبيق Spring Boot + Tomcat مدمج (embedded) فعليًا وتسجيل الفلتر التالي:

root@kitploit:~
UrlHandlerFilter.trailingSlashHandler("/**")
    .redirect(HttpStatus.PERMANENT_REDIRECT)
    .build();

يتم إرسال الطلب عبر مقبس TCP خام (raw TCP socket) لمنع عميل HTTP من تطبيع مسار // مسبقًا.

  1. embeddedServletContainerEmitsNetworkPathReferenceForDoubleSlashPath
    • يتم إرسال GET //attacker.example/ HTTP/1.1.
    • يتم التحقق من 308 Permanent Redirect وLocation: //attacker.example.
    • يثبت السلوك الضعيف الذي يمكن للمتصفح تفسيره كـ origin خارجي.
  2. embeddedServletContainerKeepsExpectedSameOriginRelativeLocationForOrdinaryPath
    • يتم إرسال GET /account/ HTTP/1.1 كمجموعة ضابطة طبيعية.
    • يتم التحقق من بقاء Location: /account كما هو.

UrlHandlerFilterOpenRedirectTest (اختبار مساعد)

يتحقق مباشرةً من Servlet Filter API باستخدام كائنات mock ويتحقق من المجموعة الضابطة للمسار الطبيعي.

في الاختبار المساعد التفاعلي (Reactive)، يتم التحقق من أن URI معين تم إنشاؤه بواسطة MockServerHttpRequest يتم تطبيعه إلى /attacker.example. ومع ذلك، فإن هذا ليس إعادة إنتاج شاملة (end-to-end) لهدف الطلب الخام في WebFlux، ولا يعني أن WebFlux غير متأثر. نطاق التأثير في الاستشارة الأمنية الرسمية من Spring يشمل كلاً من Spring MVC وSpring WebFlux.

طريقة التشغيل

Windows:

root@kitploit:~
.\mvnw.cmd test

macOS/Linux:

root@kitploit:~
./mvnw test

النتائج المتوقعة عند استخدام الإصدار القابل للاستغلال:

root@kitploit:~
UrlHandlerFilterBootServletIntegrationTest: Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
UrlHandlerFilterOpenRedirectTest: Tests run: 4, Failures: 0, Errors: 0, Skipped: 0
BUILD SUCCESS

يعني نجاح الاختبار أنه «تم إعادة إنتاج السلوك القابل للاستغلال». في اختبار التكامل الرئيسي، ينتج الطلب الخام المُعدّ (crafted raw request) قيمة Location يمكن تفسيرها كـ origin خارجي، بينما يحافظ الطلب الطبيعي على مسار نسبي من نفس الأصل (same-origin).

التبعيات المستخدمة

يستخدم هذا المستودع المجموعة التالية:

root@kitploit:~
Spring Boot 3.5.14
Spring Framework 6.2.18
Apache Tomcat 10.1.54
Java 17+

يُعد كل من Spring Boot وTomcat بيئة تشغيل للـ PoC، بينما المنتج المتأثر رسميًا هو Spring Framework. الإصدار 6.2.18 من Spring Framework المستخدم في الـ PoC يقع ضمن نطاق التأثير الرسمي 6.2.0 - 6.2.19.

لماذا تعتبر خطيرة؟

يمكن للمهاجم استغلال عنوان URL الخاص بتطبيق يثق به المستخدم لحثّه على الانتقال إلى موقع خارجي. ويمكن استخدام ذلك في سيناريوهات التصيد الاحتيالي، واستغلال علاقات الثقة، والاستيلاء اللاحق على بيانات الاعتماد.

يشير متجه CVSS الرسمي إلى أنه لا يتطلب صلاحيات مسبقة ولكنه يتطلب تفاعل المستخدم، ويقيّم تأثير السرية والسلامة عند مستوى Low وتأثير التوافر عند None.

طرق التخفيف

وفقًا للتوصية الرسمية من Spring، يجب الترقية إلى الإصدار المصحح المناسب لقناة الدعم المستخدمة. وتنص الاستشارة الرسمية على عدم الحاجة إلى أي إجراءات تخفيف إضافية بعد الترقية.

الإسناد

ورد في الاستشارة الأمنية الرسمية من Spring ما يلي:

  • Daehyun Kang (@daehyuh)

روابط مرجعية

  • الاستشارة الأمنية الرسمية من Spring: https://spring.io/security/cve-2026-47883/
  • CWE-601: https://cwe.mitre.org/data/definitions/601.html
  • RFC 3986 §4.2: https://www.rfc-editor.org/rfc/rfc3986#section-4.2
  • حاسبة CVSS v3.1: https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N&version=3.1
تنزيل الأداة