Skip to main content

Análise da CVE-2022-42889: a vulnerabilidade de execução arbitrária de código no Apache Commons Text

Escrito por

18 de outubro de 2022

0 minutos de leitura

Antes de tudo, vale deixar claro: esta NÃO é uma nova vulnerabilidade Log4Shell ou Spring4Shell. Embora seja um problema de execução remota de código, seu impacto não é tão grave nem tão fácil de explorar quanto o da falha no Log4j, descoberta em dezembro de 2021.

Assim como no caso do Log4j, o problema está na possibilidade de fazer uma consulta que pode ser usada de forma indevida. No entanto, a vulnerabilidade Log4Shell era muito fácil de explorar — o que não necessariamente acontece desta vez. Na prática, esse problema é muito parecido com a CVE-2022-33980, sobre a qual escrevemos um artigo no início deste ano.

Entenda os problemas de segurança do Apache Commons Text

Na biblioteca Apache Commons Text, é possível interpolar variáveis. Isso permite carregar propriedades que podem ser avaliadas dinamicamente.

O problema está em StringLookup, que realiza as consultas. Essas consultas são expressões que podem resolver registros DNS, carregar valores de URLs e executar scripts usando um mecanismo de execução de scripts da JVM. Essas URLs e esses scripts podem vir de fontes remotas e levar à execução remota de código quando valores não confiáveis são usados. Essa é considerada uma vulnerabilidade de alta gravidade, identificada como CVE-2022-42889, e afeta as versões da 1.5.x à 1.9.x.

Exemplos da CVE-2022-42889

A seguir, você verá dois exemplos desse tipo de script, usando o mecanismo Nashorn ou o JavaScript. O resultado será o mesmo se você usar interpolatorStringLookup diretamente ou por meio de StringSubstitutor (o que provavelmente é mais comum).

Exemplos de código Java usando StringSubstitutor e StringLookup para executar comandos por meio da interpolação de scripts

Vale lembrar que o mecanismo de script Nashorn não está mais disponível por padrão no Java 15 e em versões posteriores. Portanto, esses scripts só serão executados se você fornecer um mecanismo de script. No entanto, como muitas empresas ainda dependem de versões antigas, como o Java 8, esse problema pode ser sério. Se você usa a versão LTS mais recente, o Java 17, nem o script JavaScript nem o Nashorn será executado, pois não há um mecanismo disponível por padrão.

Como corrigir a CVE-2022-42889

Vale reforçar: não estamos diante de uma nova Log4Shell. Talvez você não use StringLookup diretamente, mas não tem como saber se alguma das bibliotecas transitivas que usa depende dele. A maneira mais simples de resolver o problema é atualizar para a versão 1.10 (ou posterior) do commons-text, que desativa os prefixos URL, DNS e script por padrão — e impede a execução arbitrária de código por esse caminho.

A análise do Snyk pode ajudar você a descobrir se essa vulnerabilidade está presente na sua stack. Se ela for detectada, atualize para a versão 1.10 e execute snyk monitor na CLI para continuar monitorando em produção.

Comece a jogar Capture the Flag

Aprenda a resolver desafios de Capture the Flag assistindo à gravação sob demanda do nosso workshop virtual introdutório.

Leia mais

illustration hero ai
Blog

PHP corrige duas vulnerabilidades críticas de RCE sem autenticação (CVE-2026-109618, CVE-2026-109619): atualize agora

Duas falhas críticas no ciclo de requisições do PHP podem permitir execução remota de código sem autenticação. Atualize para uma versão corrigida ou instale um backport do fornecedor para versões mais antigas.

blog feature ai lilac
Blog

Transforme seu backlog de vulnerabilidades em pull requests com remediação agentiva

O Evo Remediation Agent está em Open Preview e traz a resolução automatizada de dependências para o Evo Agentic AppSec. Agora, as equipes de AppSec podem executar campanhas contínuas de remediação

AI Background min crop
Blog

A IA está acionando todos os riscos que você aceitou: sete insights do painel de segurança de IA sem filtros

A IA está tornando os ataques mais baratos e rápidos, expondo riscos que as organizações já carregam. Quatro líderes de segurança explicam por que a defesa na velocidade das máquinas e a correção mais rápida são essenciais.