Text4Shell é uma vulnerabilidade na biblioteca Java Apache Commons Text. Essa vulnerabilidade, em condições específicas, permite que um invasor execute código arbitrário na máquina da vítima (Remote Code Execution ou “RCE”). A vulnerabilidade foi descoberta por Alvaro Muñoz (também conhecido como pwntester) e anunciada publicamente em 13 de outubro
Text4Shell recebeu oficialmente o identificador CVE-2022-42889 .
Observação: embora a vulnerabilidade também seja conhecida como “Act4Shell”, nos referiremos a ela como “Text4Shell” neste artigo.
Os aplicativos que usam a biblioteca Apache Commons Text (ou que dependem de bibliotecas que a utilizam) são afetados.
Embora o nome Text4Shell possa sugerir que esse problema é uma vulnerabilidade generalizada do Log4Shell , felizmente não é o caso.
O Text4Shell é mais semelhante ao Spring4Shell no sentido de que as condições de exploração exigem um padrão vulnerável no código do aplicativo, além da presença de uma versão vulnerável do Apache Commons Text.
Se apenas a versão vulnerável do Apache Commons Text estiver presente, mas o padrão vulnerável também não existir, o Text4Shell não poderá ser explorado.
Entraremos em mais detalhes sobre isso na próxima seção, mas acreditamos que o impacto real do Text4Shell seja limitado em comparação com o Log4Shell.
A configuração vulnerável é muito incomum no código-fonte público que analisamos, o que significa que é bastante improvável que você seja vulnerável ao Text4Shell, mesmo se estiver usando uma versão vulnerável do Apache Commons Text.
Dito isso, o problema está nos detalhes e acreditamos que você deveria:
StringSubstitutor.createInterpolator()
e StringLookupFactory.INSTANCE.interpolatorStringLookup().lookup()
verifique se todas as chamadas não são exploráveis ouMesmo que seja improvável que você esteja vulnerável, esta é uma vulnerabilidade RCE. E não é apenas um RCE, mas é ainda mais fácil de explorar do que o Log4Shell (não há ida e volta da rede para buscar um bytecode Java de um serviço LDAP).
Se você quiser verificar se está vulnerável ao Text4Shell (incluindo se novos desvios forem encontrados), podemos fazer uma PoC usando o nosso SCA, que executa varreduras para descobrir configurações incorretas em terminais monitorados.
Para formas adicionais de detectar o Text4Shell, também forneceremos links para outros recursos no final deste artigo.
Apache lançou um patch para esta vulnerabilidade. Atualizar a versão da Apache Commons Text Library para 1.10 reduz a vulnerabilidade. Além disso, verifique o uso de org.apache.commons.text.StringSubstitutor
perto em sua base de código e certifique-se de que entradas de usuários não confiáveis não sejam passadas para funções vulneráveis.
Neste artigo, demonstramos como detectar a Text4shell
vulnerabilidade monitorando um endpoint para versões vulneráveis da Apache Commons Text Library. Para conseguir isso, usamos o módulo Omni Secure SCA e escrevemos regras personalizadas para detectar tentativas de exploração no endpoint monitorado.
Fale com nossa equipe e veja como as soluções Omni Secure pode ajudar a