Alerta Geral na Comunidade Dev: Falha de Execução Remota Ameaça o Ecossistema React

Em meus anos como arqueólogo digital, aprendi a respeitar a robustez dos sistemas antigos. Eles têm suas peculiaridades, claro, mas raramente você vê um mainframe inteiro cair por causa de um pacote de dados mal-intencionado. Pois bem, o mundo moderno dos frameworks JavaScript, com toda sua reatividade e componentes brilhantes, nos deu um lembrete de que novas tecnologias podem tropeçar em problemas muito, muito antigos. Uma vulnerabilidade de severidade máxima, classificada com um perfeito e aterrorizante 10.0 na escala CVSS, foi descoberta no coração do React 19 e, por extensão, em frameworks populares como o Next.js.

A falha, rastreada como CVE-2025-55182 para o React e CVE-2025-66478 para o Next.js, é do tipo que tira o sono de qualquer administrador de sistemas. Estamos falando de uma vulnerabilidade de Execução Remota de Código (RCE) que não exige autenticação. Segundo a empresa de segurança Wiz, a exploração é tão simples que requer apenas uma única requisição HTTP e tem uma taxa de sucesso próxima de 100%. Em outras palavras, um atacante pode, do conforto de seu terminal, tomar controle total de um servidor vulnerável. Como disse um pesquisador nas redes sociais, resumindo o sentimento geral: “Eu não costumo dizer isso, mas aplique o patch agora mesmo”.

O “Voo” da Morte: Como a Falha Funciona?

O problema, caro leitor, reside em uma tecnologia chamada React Server Components (RSC) e seu protocolo de comunicação, poeticamente chamado de “Flight”. A ideia dos RSCs é fantástica: permitir que componentes sejam renderizados no servidor para otimizar o desempenho. O protocolo Flight é o mensageiro que leva os dados entre cliente e servidor. O X da questão está em um processo chamado “desserialização”. Pense nisso como desembrulhar um presente que chega pelo correio. O servidor recebe um pacote de dados (o presente) e o converte em algo que ele possa usar internamente.

A falha ocorre porque o pacote “react-server” estava aceitando presentes de estranhos sem verificar o conteúdo. Um invasor pode enviar um “presente” especialmente malformado, um payload malicioso que, ao ser desembrulhado pelo servidor, não é validado corretamente. De acordo com a análise da Wiz, isso permite que dados controlados pelo atacante interfiram na lógica do servidor, levando à execução de código JavaScript com privilégios elevados. É o equivalente digital de receber uma caixa de bombons e, ao abri-la, encontrar um controle remoto que desliga as luzes da sua casa. E o pior: a falha afeta as configurações padrão, o que significa que incontáveis aplicações estão expostas sem que seus desenvolvedores tenham feito nada de errado.

Quem Está na Zona de Risco?

A abrangência desta vulnerabilidade é vasta. Segundo dados da Wiz, cerca de 39% de todos os ambientes em nuvem contêm instâncias de Next.js ou React em versões vulneráveis. Grandes nomes como Netflix, Airbnb e Walmart utilizam a tecnologia, ilustrando o potencial de impacto. A falha foi descoberta por Lachlan Davidson em 29 de novembro e, felizmente, a equipe do React e da Meta agiram rapidamente, coordenando correções em apenas quatro dias.

As versões afetadas são bastante específicas. Se você utiliza alguma delas, sua aplicação está em perigo:

  • Pacotes React: react-server-dom-webpack, react-server-dom-parcel e react-server-dom-turbopack nas versões 19.0.0, 19.1.0, 19.1.1 e 19.2.0.
  • Next.js: Todas as versões das séries 15.x e 16.x, além das versões canary a partir da 14.3.0-canary.77. É importante notar: as versões estáveis do Next.js 13.x e 14.x não são afetadas.
  • Outros Frameworks e Bundlers: A lista inclui também Vite RSC plugin, Parcel RSC plugin, React Router (em suas APIs instáveis de RSC), RedwoodSDK e Waku.

Operação “Atualiza ou Chora”: Como se Proteger?

A boa notícia é que as correções já estão disponíveis e a recomendação é unânime: atualize imediatamente. Não há tempo para um café. A exploração da falha é considerada “iminente”, dado que o código do exploit já é público.

As versões corrigidas que você deve instalar são:

  • React: 19.0.1, 19.1.2 ou 19.2.1.
  • Next.js: 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7, entre outras. A recomendação é buscar a última versão de patch para a sua linha de release.

Para os usuários de Next.js, o comando é direto:

# Exemplo para a linha 15.0.x
npm install next@15.0.5

# Se você estiver em uma versão canary vulnerável da 14.3.0
npm install next@14

Para quem utiliza provedores de hospedagem com Web Application Firewall (WAF), como a Vercel e a Cloudflare, mitigações temporárias foram aplicadas. No entanto, o aviso oficial do React é claro: não dependa delas e atualize suas dependências mesmo assim.

No fim, este episódio serve como uma lição valiosa. Seja em um sistema COBOL de décadas atrás ou em um framework JavaScript de última geração, a regra de ouro da computação permanece imutável: nunca, jamais, confie cegamente na entrada do usuário. Parece que cada geração de desenvolvedores precisa aprender essa lição da maneira mais difícil. Agora, com sua licença, vou verificar se meus velhos cartões perfurados estão devidamente validados.