
Ambiente de laboratório reproduzível demonstrando CVE-2022-22978, bypass de autorização no Spring Security através de caracteres de nova linha codificados no RegexRequestMatcher.
RegexRequestMatcher, que utiliza expressões regulares para conceder autorização, se a URL da requisição contiver caracteres de nova linha, pode ocorrer um desvio de autorização.%0a, %0d, para contornar a autorização de acesso à página de administração (/admin).docker compose up -d para preparar o ambiente de teste.http://localhost:8080/admin para verificar se o acesso à página de administração está bloqueado.http://localhost:8080/admin/%0atest para tentar acessar a página de administração.
Ambiente vulnerável configurado.

O acesso à página de administração está bloqueado.

%0d representa '\r' (carriage return) e %0a representa '\n' (line feed) — são caracteres de nova linha. Enviar requisições usando %0d e %0a permite contornar a autorização.
Se caracteres de nova linha como %0a, %0d estiverem incluídos na URL, o RegexRequestMatcher não processa adequadamente esses caracteres ao filtrar o caminho da requisição, permitindo um desvio de autorização. É necessário cuidado, pois um atacante pode acessar a página de administração através desse desvio e roubar informações importantes.
Endereço do GitHub: https://github.com/he-ewo/CVE-2022-22978.git