
CVE-2025-22235 es una vulnerabilidad de seguridad en Spring Boot que involucra al método EndpointRequest.to(), el cual puede generar matchers incorrectos al configurar reglas de seguridad, provocando que la protección de seguridad de las rutas de endpoints de actuator no expuestos (como /null/**) deje de ser efectiva.
Cuando se utiliza EndpointRequest.to("health") para configurar reglas de seguridad, si el endpoint health no está configurado en management.endpoints.web.exposure.include, Spring Boot genera un matcher de ruta incorrecto /null/**, lo que provoca que todas las solicitudes bajo esa ruta evadan la verificación de autenticación.
management.endpoints.web.exposure.include=info (solo se expone el endpoint info; el endpoint health no está expuesto)EndpointRequest.to("health") para hacer referencia a un endpoint no expuestomvn spring-boot:run
Acceda directamente a http://localhost:8080/null: se puede acceder sin iniciar sesión, lo que demuestra que existe la vulnerabilidad de bypass de autenticación.
Al acceder a otros endpoints protegidos, como http://localhost:8080/info, se solicitará el inicio de sesión.
.requestMatchers(EndpointRequest.to("health")).permitAll() // 漏洞触发点
.requestMatchers("/null").authenticated() // 应该受保护但被绕过
@GetMapping("/null")
public String sensitiveEndpoint() {
return "未登录看到此页面,说明存在CVE-2025-22235认证绕过漏洞!";
}
Actualice a las siguientes versiones corregidas:
EndpointRequest.to() esté habilitado y expuesto a través de la web/nullLa causa raíz de la vulnerabilidad es que el método EndpointRequest.to() genera un matcher de ruta incorrecto al procesar endpoints no expuestos. Cuando el nombre del endpoint no está configurado en management.endpoints.web.exposure.include, Spring Boot crea un patrón de ruta que contiene null, lo que provoca que las reglas de seguridad queden sin efecto.
Este proyecto de demostración se utiliza únicamente con fines de investigación y educación en seguridad. No lo utilice en entornos de producción. El uso de este proyecto es bajo su propio riesgo.