
يُظهر تجاوز المصادقة في Spring Boot (CVE-2025-22235) عبر سوء تكوين EndpointRequest.to(). يشمل إعداد البيئة، خطوات إعادة الإنتاج، تحليل الكود، وإرشادات المعالجة لأغراض البحث الأمني والتعليم.
CVE-2025-22235 هي ثغرة أمنية في Spring Boot تتعلق بطريقة EndpointRequest.to() التي قد تنشئ مطابقات غير صحيحة عند تكوين قواعد الأمان، مما يؤدي إلى فقدان الحماية الأمنية لمسارات نقاط النهاية غير المكشوفة (مثل /null/**).
عند استخدام EndpointRequest.to("health") لتكوين قواعد الأمان، إذا لم يتم تكوين نقطة النهاية health في management.endpoints.web.exposure.include، يقوم Spring Boot بإنشاء مطابق مسار خاطئ ، مما يؤدي إلى تجاوز جميع الطلبات في هذا المسار لفحص المصادقة.
/null/**management.endpoints.web.exposure.include=info (فقط نقطة النهاية info مكشوفة، وليست health)EndpointRequest.to("health") في تكوين الأمان للإشارة إلى نقطة نهاية غير مكشوفةmvn spring-boot:run
قم بزيارة http://localhost:8080/null مباشرة، يمكن الوصول إليها دون تسجيل الدخول، مما يثبت وجود ثغرة تجاوز المصادقة.
عند الوصول إلى نقاط نهاية أخرى محمية مثل http://localhost:8080/info، سيُطلب تسجيل الدخول.
.requestMatchers(EndpointRequest.to("health")).permitAll() // نقطة تشغيل الثغرة
.requestMatchers("/null").authenticated() // يجب أن يكون محميًا ولكن تم تجاوزه
@GetMapping("/null")
public String sensitiveEndpoint() {
return "رؤية هذه الصفحة بدون تسجيل الدخول تعني وجود ثغرة CVE-2025-22235 (تجاوز المصادقة)!";
}
قم بالترقية إلى الإصدارات المصححة التالية:
EndpointRequest.to() مفعلة ومكشوفة عبر الويب/nullالسبب الجذري للثغرة هو أن طريقة EndpointRequest.to() تنشئ مطابق مسار خاطئ عند معالجة نقطة نهاية غير مكشوفة. عندما لا يتم تكوين اسم نقطة النهاية في management.endpoints.web.exposure.include، يقوم Spring Boot بإنشاء نمط مسار يحتوي على null، مما يؤدي إلى تعطل قواعد الأمان.
هذا المشروع التجريبي مخصص فقط لأغراض البحث الأمني والتعليم، ولا يُستخدم في بيئات الإنتاج. يتحمل المستخدم المسؤولية الكاملة عن استخدام هذا المشروع.