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
React2Shell — Minha pesquisa sobre CVE-2025-55182 | Kitploit
Ferramentas/GitHubGitHub/i3r1h0n/react2shell
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e EducaçãoDesenvolvimento de Payloads
GitHubi3r1h0n/react2shell

React2Shell

Minha pesquisa sobre CVE-2025-55182

Ver Repositório
há 9 mesesAinda não revisado

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

React2Shell (CVE-2025-55182)

Visão Geral

Este repositório é minha pesquisa sobre CVE-2025-55182, também conhecida como vulnerabilidade React2Shell. O repositório consiste em duas partes principais: stand e exploit.

Referências

Algumas informações sobre esta falha de segurança:

  • NIST
  • Artigo do HackerOne
  • Resumo da Vercel
  • Artigo da WIZ
  • Página web do autor
  • PoC original

Causa raiz

A vulnerabilidade é basicamente a falta de validação de entrada do usuário. Mas não é tão simples assim =)

A parte React Client e a parte React Server usam o React Flight Protocol para trocar dados. Aqui está uma boa palestra sobre ele, para você se familiarizar rapidamente.

Exemplo de chunks de mensagem do React Flight Protocol:

root@kitploit:~
{
    "0": (None, '["$1"]'),
    "1": (None, '{"object":"fruit","name":"$2:fruitName"}'),
    "2": (None, '{"fruitName":"cherry"}'),
}
Baixar ferramenta

Chunks do RFP podem referir-se uns aos outros usando o operador $. Quando os chunks são desserializados no servidor, esses links são resolvidos. Um ponto chave aqui é que podemos acessar o protótipo do objeto a partir dele.

Ao manipular o protótipo, podemos forçar o V8 a aguardar nosso .then(). O payload resultante pode se parecer com isto:

root@kitploit:~
{
    "then": "$1:__proto__:then",
    "status": "resolved_model",
    "reason": -1,
    "value": '{"then": "$B0"}',
    "_response": {
        "_prefix": f"return foo; ",
        "_formData": {
            "get": "$1:constructor:constructor",
        },
    },
}

Não vou me aprofundar em detalhes de como essa cadeia de gadgets realmente funciona; se quiser saber mais, leia uma ótima análise aqui por Moritz Sanft.

Você também pode ver a comparação de versão no GitHub, antes e depois do patch, se quiser se aprofundar nessa falha.

Stand

Criei um aplicativo simples react/next.js, que usa (veja o stand/package.json):

root@kitploit:~
"dependencies": {
  "next": "16.0.6",
  "react": "19.2.0",
  "react-dom": "19.2.0"
},

Apenas uma página simples com conteúdo de texto, criada com create-next-app:

Para iniciar, execute isto no diretório stand:

root@kitploit:~
docker compose up --build -d

Em seguida, navegue para http://localhost:3000 no seu navegador.

Exploit

A exploração é direta. Basta enviar chunks RFP especialmente construídos com nosso payload para o servidor via requisição POST. Veja o exploit/src/main.py. Ele também inclui uma verificação simples se o servidor é vulnerável ou não; ele tenta executar um comando whoami; se o tempo limite for excedido, o servidor provavelmente usa uma versão corrigida.

Você pode ver o payload RFP em exploit/resource/chunk.json.

Antes de executar o exploit, não se esqueça de configurar um listener netcat e atualizar o exploit/resource/config.toml com seu host e porta, para obter um reverse shell.

Feliz pwning!

Créditos

Grande respeito a Lachlan Davidson, que descobriu a vulnerabilidade, maple, que encontrou um bom gadget, e também Moritz Sanft, que compartilhou seu PoC e escreveu uma ótima análise.

produzido por I3r1h0n.