Critical Security Vulnerability in React Server Components

3 de dezembro de 2025 por A Equipe do React


Existe uma vulnerabilidade de execução remota de código não autenticada nos Componentes de Servidor do React.

Recomendamos a atualização imediata.


Em 29 de novembro, Lachlan Davidson relatou uma vulnerabilidade de segurança no React que permite a execução remota de código não autenticada, explorando uma falha na forma como o React decodifica payloads enviados para endpoints de Funções de Servidor do React.

Mesmo que seu aplicativo não implemente nenhum endpoint de Função de Servidor do React, ele ainda pode estar vulnerável se seu aplicativo suportar Componentes de Servidor do React.

Esta vulnerabilidade foi divulgada como CVE-2025-55182 e tem classificação CVSS 10.0.

A vulnerabilidade está presente nas versões 19.0, 19.1.0, 19.1.1 e 19.2.0 de:

Ação Imediata Necessária

Uma correção foi introduzida nas versões 19.0.1, 19.1.2 e 19.2.1. Se você estiver usando algum dos pacotes acima, atualize para qualquer uma das versões corrigidas imediatamente.

Se o código React do seu aplicativo não usa um servidor, seu aplicativo não é afetado por esta vulnerabilidade. Se seu aplicativo não usa um framework, bundler ou plugin de bundler que suporte Componentes de Servidor do React, seu aplicativo não é afetado por esta vulnerabilidade.

Frameworks e bundlers afetados

Alguns frameworks e bundlers do React dependiam, tinham dependências de pares ou incluíam os pacotes vulneráveis do React. Os seguintes frameworks e bundlers do React são afetados: next, react-router, waku, @parcel/rsc, @vitejs/plugin-rsc e rwsdk.

Veja as instruções de atualização abaixo para saber como atualizar para esses patches.

Mitigações do provedor de hospedagem

Trabalhamos com vários provedores de hospedagem para aplicar mitigações temporárias.

Você não deve depender delas para proteger seu aplicativo e ainda assim atualizar imediatamente.

Visão geral da vulnerabilidade

Funções de Servidor do React permitem que um cliente chame uma função em um servidor. O React fornece pontos de integração e ferramentas que frameworks e bundlers usam para ajudar o código React a ser executado tanto no cliente quanto no servidor. O React traduz requisições no cliente em requisições HTTP que são encaminhadas para um servidor. No servidor, o React traduz a requisição HTTP em uma chamada de função e retorna os dados necessários para o cliente.

Um invasor não autenticado poderia criar uma requisição HTTP maliciosa para qualquer endpoint de Função de Servidor que, ao ser desserializado pelo React, alcançasse a execução remota de código no servidor. Mais detalhes sobre a vulnerabilidade serão fornecidos após a conclusão da implantação da correção.

Instruções de atualização

Note

Estas instruções foram atualizadas para incluir as novas vulnerabilidades:

Veja o post de acompanhamento no blog para mais informações.


Atualizado em 26 de janeiro de 2026.

Next.js

Todos os usuários devem atualizar para a versão corrigida mais recente em sua linha de lançamento:

npm install next@14.2.35 // para 13.3.x, 13.4.x, 13.5.x, 14.x
npm install next@15.0.8 // para 15.0.x
npm install next@15.1.12 // para 15.1.x
npm install next@15.2.9 // para 15.2.x
npm install next@15.3.9 // para 15.3.x
npm install next@15.4.11 // para 15.4.x
npm install next@15.5.10 // para 15.5.x
npm install next@16.0.11 // para 16.0.x
npm install next@16.1.5 // para 16.1.x

npm install next@15.6.0-canary.60 // para releases canary 15.x
npm install next@16.1.0-canary.19 // para releases canary 16.x

15.0.8, 15.1.12, 15.2.9, 15.3.9, 15.4.10, 15.5.10, 15.6.0-canary.61, 16.0.11, 16.1.5

Se você estiver na versão 13.3 ou posterior do Next.js 13 (13.3.x, 13.4.x ou 13.5.x), atualize para a versão 14.2.35.

Se você estiver em next@14.3.0-canary.77 ou uma versão canary posterior, reverta para a versão estável mais recente da linha 14.x:

npm install next@14

Veja o blog do Next.js para as instruções de atualização mais recentes e o changelog anterior para mais informações.

React Router

Se você estiver usando as APIs instáveis de RSC do React Router, deverá atualizar as seguintes dependências do package.json, se existirem:

npm install react@latest
npm install react-dom@latest
npm install react-server-dom-parcel@latest
npm install react-server-dom-webpack@latest
npm install @vitejs/plugin-rsc@latest

Expo

Para saber mais sobre como mitigar, leia o artigo em expo.dev/changelog.

Redwood SDK

Certifique-se de estar usando rwsdk>=1.0.0-alpha.0

Para a versão beta mais recente:

npm install rwsdk@latest

Atualize para a versão mais recente de react-server-dom-webpack:

npm install react@latest react-dom@latest react-server-dom-webpack@latest

Veja a documentação do Redwood para mais instruções de migração.

Waku

Atualize para a versão mais recente de react-server-dom-webpack:

npm install react@latest react-dom@latest react-server-dom-webpack@latest waku@latest

Veja o anúncio do Waku para mais instruções de migração.

@vitejs/plugin-rsc

Atualize para o plugin RSC mais recente:

npm install react@latest react-dom@latest @vitejs/plugin-rsc@latest

react-server-dom-parcel

Atualize para a versão mais recente:

npm install react@latest react-dom@latest react-server-dom-parcel@latest

react-server-dom-turbopack

Atualize para a versão mais recente:

npm install react@latest react-dom@latest react-server-dom-turbopack@latest

react-server-dom-webpack

Atualize para a versão mais recente:

npm install react@latest react-dom@latest react-server-dom-webpack@latest

React Native

Para usuários do React Native que não utilizam monorepo ou react-dom, sua versão do react deve estar fixada em seu package.json, e não há etapas adicionais necessárias.

Se você estiver usando React Native em um monorepo, você deve atualizar apenas os pacotes impactados, se eles estiverem instalados:

  • react-server-dom-webpack
  • react-server-dom-parcel
  • react-server-dom-turbopack

Isso é necessário para mitigar o aviso de segurança, mas você não precisa atualizar react e react-dom, então isso não causará o erro de incompatibilidade de versão no React Native.

Veja este issue para mais informações.

Cronologia

  • 29 de novembro: Lachlan Davidson relatou a vulnerabilidade de segurança através do Meta Bug Bounty.
  • 30 de novembro: Pesquisadores de segurança da Meta confirmaram e começaram a trabalhar com a equipe do React em uma correção.
  • 1º de dezembro: Uma correção foi criada e a equipe do React começou a trabalhar com provedores de hospedagem afetados e projetos de código aberto para validar a correção, implementar mitigações e lançar a correção.
  • 3 de dezembro: A correção foi publicada no npm e divulgada publicamente como CVE-2025-55182.

Atribuição

Obrigado a Lachlan Davidson por descobrir, relatar e ajudar a corrigir esta vulnerabilidade.