flawopen.com/Teardowns/cve-2025-55182-react-server-components-rce
CVE-2025-55182: React2Shell no RSC
CVE-2025-55182 é uma falha de execução remota sem autenticação na decodificação de payloads React Server Components (RSC). React confirmou a falha; o Google Threat Intelligence documentou campanhas com downloaders, backdoors e mineradores.[1], [4], [5]
Imagine uma recepcionista consultando uma lista de serviços autorizados. Uma busca incorreta trata um nome herdado do modelo da lista como se o responsável o tivesse cadastrado. O patch do React verifica se a exportação solicitada pertence ao próprio módulo; o aviso público não revela a sequência completa do exploit. Atualize os pacotes afetados.[1]
Conceitos Centrais e Termos
React Server Components (RSC)- React Server Components: protocolo e pacotes React para renderização no servidor e troca de dados Flight.[1]
Mapeamentos de frameworks
- Referência CWE para a fraqueza descrita neste guia: CWE-502
- CISA KEV — adicionado em 2025-12-05 — CVE-2025-55182
Análise de Causa Raiz
React confirma que a RCE vinha de uma falha ao decodificar payloads enviados a endpoints React Server Functions; apenas o suporte a RSC podia expor o app. O aviso inicial omitiu detalhes do exploit. O patch upstream público adiciona uma verificação de propriedade própria em requireModule() e reforça erros de respostas multipart. O trecho mostra uma correção concreta, não reproduz o decoder inteiro nem afirma que um único guard explica toda a cadeia.[1], [2]
Versões afetadas e escopo de implantação do React2Shell
| Componente ou implantação | Avaliação do escopo | Ação de correção |
|---|---|---|
react-server-dom-webpack, react-server-dom-parcel ou react-server-dom-turbopack nas versões 19.0, 19.1.0, 19.1.1 ou 19.2.0. | O suporte RSC no servidor pode expor o aplicativo mesmo sem um endpoint Server Function declarado; o limite do servidor precisa estar acessível. | Atualize a linha do pacote para 19.0.1, 19.1.2 ou 19.2.1 ou posterior, conforme aplicável. Recompile e reimplante o artefato do servidor. |
| Next.js App Router em versões afetadas 15.x/16.x ou em 14.3.0-canary.77 e canaries posteriores. | Integrações afetadas do framework incluem os pacotes RSC vulneráveis. Não presuma que está seguro porque o aplicativo não declara seu próprio endpoint Server Function. | Use a versão corrigida correspondente: 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7 ou 16.0.7 ou posterior. São as versões mínimas registradas no aviso citado; confira a linha atual do fornecedor antes da implantação. |
| Aplicativo React somente no cliente, sem suporte RSC no servidor. | Fora do escopo documentado da CVE porque não possui o limite decodificador no servidor. | Essa configuração não precisa do patch de servidor do React2Shell. Reavalie se RSC ou componentes de servidor forem introduzidos. |
| Implantação declarada como corrigida. | A versão no manifesto não comprova que todas as regiões, serviços de preview, workers ou contêineres em execução usam o artefato corrigido. | Verifique digests de imagens e versões resolvidas em produção, preview e workers; investigue qualquer período anterior de exposição. |
| Orientação por linha do Next.js na atualização do React de 2026-01-26 | A orientação posterior do React inclui versões de segurança mais novas; elas não são as versões mínimas que corrigiram inicialmente a CVE-2025-66478. Avisos RSC relacionados e linhas suportadas podem alterar o alvo da atualização. | Para os avisos RSC relacionados CVE-2025-55183, CVE-2025-55184, CVE-2025-67779 e CVE-2026-23864, o React indicou as versões corrigidas 19.0.4, 19.1.5 e 19.2.4. A orientação do Next.js, datada de 2026-01-26, foi: 14.2.35 para 13.3.x–14.x estável; 15.0.8 para 15.0.x; 15.1.12 para 15.1.x; 15.2.9 para 15.2.x; 15.3.9 para 15.3.x; 15.4.11 para 15.4.x; 15.5.10 para 15.5.x; 16.0.11 para 16.0.x; e 16.1.5 para 16.1.x. Esta é uma orientação posterior para problemas relacionados, não as versões mínimas do Next.js que corrigiram a CVE-2025-66478. Antes de implantar, consulte o aviso mais recente do fornecedor e confirme a linha com suporte. |
CVE-2026-23869 — negação de serviço em RSC (2026-04-08). | O React informa que requisições HTTP especialmente criadas a endpoints de Server Function podem consumir CPU excessivamente por até um minuto antes de gerar um erro capturável. As linhas afetadas dos pacotes react-server-dom-* vão até 19.0.4, 19.1.5 e 19.2.4. | O React lista 19.0.5, 19.1.6 e 19.2.5 como corrigidas, respectivamente. |
CVE-2026-23870 — negação de serviço em RSC (2026-05-06). | O React informa que requisições HTTP especialmente criadas podem causar exceções por falta de memória ou consumo excessivo de CPU. As linhas afetadas dos pacotes react-server-dom-* vão até 19.0.5, 19.1.6 e 19.2.5. | O React lista 19.0.6, 19.1.7 e 19.2.6 como corrigidas, respectivamente. |
CVE-2026-44907 — negação de serviço em Server Functions (2026-07-21). | O React informa que requisições HTTP especialmente criadas podem causar exceções por falta de memória ou consumo excessivo de CPU. As linhas afetadas dos pacotes react-server-dom-* vão até 19.0.7, 19.1.8 e 19.2.7. | O React lista 19.0.8, 19.1.9 e 19.2.8 como corrigidas, respectivamente. |
Fluxo de Ataque Passo a Paso
Código-Fonte: Vulnerável vs. Seguro
Este trecho exato do patch upstream retorna apenas uma exportação própria do módulo; não reproduz toda a falha do decodificador nem é uma correção independente. Atualize o pacote React Server Components ou o framework afetado.[2], [1]
Trecho de origem: Método requireModule() no cliente Parcel do React
export function requireModule<T>(metadata: ClientReference<T>): T {
const moduleExports = parcelRequire(metadata[ID /* module id */]);
return moduleExports[metadata[NAME]];
}
export function requireModule<T>(metadata: ClientReference<T>): T {
const moduleExports = parcelRequire(metadata[ID /* module id */]);
if (hasOwnProperty.call(moduleExports, metadata[NAME])) {
return moduleExports[metadata[NAME]];
}
return (undefined: any);
}
Lista de Verificação de Segurança para Engenharia
- ✓Confira lockfiles, imagens e bundles implantados.[1], [4]
- ✓Atualize para React RSC 19.0.1, 19.1.2 ou 19.2.1 ou posterior e versões corrigidas dos frameworks. Para avisos RSC posteriores, consulte a matriz e atualize os pacotes
react-server-dom-*resolvidos para a versão corrigida aplicável mais recente; frameworks podem incluir esses pacotes.[1], [4], [8], [9], [10] - ✓Recompile e reimplante; WAF é defesa temporária, não substitui patch.[1]
- ✓Verifique as versões realmente executadas.[1]
- ✓Se exposto sem patch, investigue processos e conexões e rotacione segredos.[5], [6]
Fontes
- React Security Advisory — CVE-2025-55182
- React upstream patch — commit 7dc903c
- NVD — CVE-2025-55182, CWE-502 and KEV status
- Next.js Security Advisory — CVE-2025-66478
- Google Threat Intelligence — React2Shell exploitation
- CISA Known Exploited Vulnerabilities Catalog
- Aviso de segurança do React — vulnerabilidades adicionais em RSC
- Aviso de segurança do React — CVE-2026-23869 (DoS em RSC)
- Aviso de segurança do React — CVE-2026-23870 (DoS em RSC)
- Aviso de segurança do React — CVE-2026-44907 (DoS em Server Functions)