
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 शामिल होता है, जिससे सुरक्षा नियम अमान्य हो जाते हैं।
यह डेमो प्रोजेक्ट केवल सुरक्षा अनुसंधान और शैक्षिक उद्देश्यों के लिए है, कृपया इसे प्रोडक्शन वातावरण में उपयोग न करें। इस प्रोजेक्ट का उपयोग करने का जोखिम उपयोगकर्ता स्वयं वहन करता है।