React2Shell - O Guia Para Iniciantes Sobre a Vulnerabilidade Que Impactou React e Next.js

Publicado em 09 de Dezembro

Leitura de 3 minutos

0 visualizações

Na semana passada, o ecossistema JavaScript foi sacudido por uma vulnerabilidade crítica que rapidamente ganhou destaque mundial: React2Shell. Mesmo quem está apenas começando a aprender React ou Next.js já deve ter visto o nome circulando por aí. E para você não ficar perdido, vamos explicar, de forma simples e direta, o que é essa falha, por que ela é tão séria e como você pode proteger seus projetos.

O que é o React2Shell?

React2Shell é uma vulnerabilidade encontrada na implementação de React Server Components (RSC) — um recurso que permite executar parte da lógica do React no servidor. Essa falha foi classificada com severidade máxima (CVSS 10) e permite que um invasor execute código arbitrário diretamente no servidor.

Simplesmente alguém pode enviar uma requisição maliciosa para sua aplicação e ganhar acesso ao ambiente de execução. Sem senha. Sem autenticação. Sem truques avançados.

Por que isso afeta tantos projetos?

Porque a vulnerabilidade não está apenas no React em si, mas em frameworks que usam RSC, principalmente:

  • Next.js (especialmente com o App Router)
  • Outros frameworks que implementam RSC
  • Bundlers com suporte a RSC, como integrações com Webpack, Vite, Turbopack e Parcel

Muitas aplicações criadas com as configurações padrão já estavam automaticamente vulneráveis.

Como saber se sua aplicação está vulnerável

Você deve verificar duas coisas:

1. Versão do React / pacotes RSC

Certifique-se de que você está usando uma versão corrigida de:

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

As versões vulneráveis incluem várias das séries 19.0.x, 19.1.x e 19.2.0.

2. Versão do Next.js

Diversas versões do Next.js 15.x e 16.x foram afetadas. As equipes publicaram correções rapidamente, então você deve atualizar para a versão mais recente disponível.

Como atualizar para corrigir a vulnerabilidade

Atualizando React e pacotes RSC

npm update react react-dom
npm update react-server-dom-webpack react-server-dom-turbopack

ou, se preferir garantir versões acima das vulneráveis:

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

Atualizando Next.js

npm install next@latest

Após atualizar:

  1. Rebuild do projeto
npm run build
  1. Redeploy completo Isso garante que nenhuma versão antiga permaneça no ambiente de produção.

Mitigações temporárias (opcional)

Caso você não possa atualizar imediatamente:

  • Use um WAF (Web Application Firewall) para bloquear cargas maliciosas relacionadas a RSC.
  • Desabilite ou limite o uso de Server Actions e RSC quando possível.
  • Monitore seus logs para detectar erros incomuns envolvendo serialização/desserialização.

React2Shell é, sem dúvida, uma das vulnerabilidades mais sérias já vistas no ecossistema React. Ela afeta projetos reais, em produção, e já foi explorada ativamente por atacantes. Uma das falhas recentes foi usar da vulnerabilidade para acessar carteiras digitais e até conteúdos sensíveis no banco de dados.

A boa notícia é que as equipes do React e do Next.js responderam rapidamente, e a atualização é simples — em muitos casos, uma linha no terminal resolve o problema. No caso da Vercel, por exemplo, você consegue, através do site oficial, pedir para o bot adicionar um pull request com essa atualização de correção, assim, é só você autorizar o merge e evitar ficar vulnerável.

Se você está começando agora no desenvolvimento web, essa situação serve como um lembrete valioso:

"Manter dependências atualizadas é tão importante quanto escrever o código em si."