
CVE-2022-22978 código de ejemplo de vulnerabilidad
Código de ejemplo de la vulnerabilidad CVE-2022-22978
Aunque está clasificada como de alta gravedad, las condiciones de explotación son bastante estrictas; personalmente creo que esta vulnerabilidad es bastante insignificante.
regexMatchers, o directamente RegexRequestMatcher, y usar . para coincidir rutas, algo como:
regexMatcher("/api/.*") // permite todas las subrutas bajo /apiregexMatcher("/files/.*\\.jpg") // coincide con todas las solicitudes de archivos .jpgregexMatcher("/user/.*/profile") // permite la ruta profile para cualquier usuario bajo /userregexMatcher("/api/.*"), también se necesita un controlador con una anotación como @RequestMapping("/api/*") para manejar todas las solicitudes bajo /api. De lo contrario, aunque se eviten las reglas de coincidencia de rutas de Spring Security usando %0a%0d, se obtendrá un error 404.Al acceder a cualquier ruta normalmente, se redirige a la página de inicio de sesión predeterminada de Spring Security.

Accediendo a: http://127.0.0.1:8080/admin/admin%0a, se omite el inicio de sesión correctamente.

Accediendo a: http://127.0.0.1:8080/hello%0a
Se omite la verificación de seguridad que requiere inicio de sesión para todas las rutas, pero como no hay un controlador con la anotación @RequestMapping("/hello/*"), el mapeo falla y se obtiene un error 404.
