
Entorno de laboratorio reproducible que demuestra la vulnerabilidad CVE-2022-22978 de Spring Security, una omisión de autorización mediante caracteres de nueva línea codificados en RegexRequestMatcher.
RegexRequestMatcher, una funcionalidad que otorga autorización mediante expresiones regulares, si la URL de la solicitud contiene caracteres de nueva línea, puede ocurrir un bypass de autorización./admin) utilizando caracteres de nueva línea codificados como %0a, %0d.docker compose up -d para preparar el entorno de prueba.http://localhost:8080/admin para verificar si el acceso a la página de administración está bloqueado.http://localhost:8080/admin/%0atest para acceder a la página de administración.
Se configuró el entorno vulnerable.

El acceso a la página de administración está bloqueado.

%0d es un carácter de nueva línea que representa '\r', y %0a representa '\n'. Si se envía una solicitud usando %0d, %0a, se puede omitir el permiso de acceso.
Si la URL contiene caracteres de nueva línea como %0a, %0d, el manejo de dichos caracteres se omite al filtrar la ruta de la solicitud en RegexRequestMatcher, lo que permite un bypass de autorización. Se debe tener precaución, ya que un atacante puede acceder a la página de administración mediante un bypass de autorización y robar información importante desde allí.
Dirección de GitHub: https://github.com/he-ewo/CVE-2022-22978.git