
Demonstra o contorno de autenticação no Spring Boot (CVE-2025-22235) via configuração incorreta do EndpointRequest.to(). Inclui configuração de ambiente, etapas de reprodução, análise de código e orientação de remediação para pesquisa e educação em segurança.
CVE-2025-22235 é uma vulnerabilidade de segurança do Spring Boot envolvendo o método EndpointRequest.to(), que pode gerar correspondentes incorretos ao configurar regras de segurança, resultando na falha de proteção de segurança em caminhos de endpoint do executor não expostos (como /null/**).
Ao usar EndpointRequest.to("health") para configurar regras de segurança, se o endpoint não estiver configurado em , o Spring Boot gera um correspondente de caminho incorreto , fazendo com que todas as solicitações nesse caminho ignorem a verificação de autenticação.
healthmanagement.endpoints.web.exposure.include/null/**management.endpoints.web.exposure.include=info (apenas expõe o endpoint info, o endpoint health não é exposto)EndpointRequest.to("health") para referenciar um endpoint não expostomvn spring-boot:run
Acesse diretamente http://localhost:8080/null, sem necessidade de login, comprovando a existência da vulnerabilidade de bypass de autenticação.
Acessar outros endpoints protegidos, como http://localhost:8080/info, exigirá login.
.requestMatchers(EndpointRequest.to("health")).permitAll() // Ponto de gatilho da vulnerabilidade
.requestMatchers("/null").authenticated() // Deveria ser protegido, mas é contornado
@GetMapping("/null")
public String sensitiveEndpoint() {
return "Ao ver esta página sem login, significa que existe a vulnerabilidade de bypass de autenticação CVE-2025-22235!";
}
Atualize para as seguintes versões corrigidas:
EndpointRequest.to() está habilitado e exposto via Web/nullA causa raiz da vulnerabilidade está no método EndpointRequest.to(), que gera um correspondente de caminho incorreto ao lidar com endpoints não expostos. Quando o nome do endpoint não está configurado em management.endpoints.web.exposure.include, o Spring Boot cria um padrão de caminho contendo null, resultando na falha das regras de segurança.
Este projeto de demonstração é apenas para fins de pesquisa e educação em segurança. Não o utilize em ambientes de produção. O uso deste projeto é por conta e risco do usuário.