Nos componentes de servidor do framework web React (RSC, React Server Components), uma vulnerabilidade (CVE-2025-55182) foi corrigida, a qual permitia a execução de código arbitrário no servidor através do envio de uma solicitação ao manipulador de servidor. A vulnerabilidade recebeu o nível crítico de gravidade (10 de 10). A falha se manifesta em componentes experimentais react-server-dom-webpack, react-server-dom-parcel e react-server-dom-turbopack, usados para executar funções e gerar elementos de interface no servidor, e não no lado do cliente.
O problema é causado por uma desserialização insegura de dados obtidos em solicitações HTTP para manipuladores de servidor. Os manipuladores 'vm#runInThisContext', 'vm#runInNewContext', 'child_process#execFileSync' e 'child_process#execSync' podem ser usados para executar comandos no sistema ou executar código JavaScript no contexto do processo atual (contornando a isolação do sandbox). Também é possível utilizar os manipuladores 'fs#readFileSync' e 'fs#writeFileSync' para ler e gravar arquivos arbitrários no servidor, dentro do que as permissões atuais permitem. Para realizar o ataque, não é necessário passar por autenticação. Um protótipo do exploit está disponível. # Execução do comando whoami curl -X POST http://localhost:3002/formaction \ -F '$ACTION_REF_0=' \ -F '$ACTION_0:0={"id":"child_process#execSync","bound":["whoami"]}' # Execução de código JavaScript 1+1 curl -X POST http://localhost:3002/formaction \ -F '$ACTION_REF_0=' \ -F '$ACTION_0:0={"id":"vm#runInThisContext","bound":["1+1"]}' # Leitura do arquivo /etc/passwd curl -X POST http://localhost:3002/formaction \ -F '$ACTION_REF_0=' \ -F '$ACTION_0:0={"id":"fs#readFileSync","bound":["/etc/passwd","utf8"]}'
A vulnerabilidade dos sistemas depende do uso dos componentes de servidor vulneráveis react-server-dom-webpack, react-server-dom-parcel e react-server-dom-turbopack. Aplicações que não utilizam o react-server não são afetadas pela vulnerabilidade. A extensão da vulnerabilidade em sistemas de trabalho que utilizam o React ainda não está clara. Por um lado, o React é um dos frameworks web mais populares (utilizado em cerca de 6% dos sites), e os componentes vulneráveis estão em desenvolvimento principalmente no repositório principal e fazem parte dos lançamentos. Os componentes vulneráveis também são suportados em frameworks baseados no React, como Next.js e react-router. Segundo a empresa Wiz Research, instâncias vulneráveis foram identificadas em 39% dos ambientes de nuvem analisados.
Por outro lado, a geração de conteúdo em servidor através do React Server Componentes são uma função pouco utilizada (a maioria dos sites React renderiza a interface apenas do lado do cliente), e os componentes vulneráveis são marcados como experimentais e não garantem funcionamento adequado. Esses componentes têm um número relativamente pequeno de downloads diretos do repositório NPM: react-server-dom-webpack - 670 mil por semana, react-server-dom-parcel - 7 mil e react-server-dom-turbopack - 32 mil, em comparação, o pacote NPM React tem 45 milhões de downloads por semana.
A vulnerabilidade está presente nas versões React 9.0.0, 19.1.0, 19.1.1 e 19.2.0, e foi corrigida nas atualizações React 19.0.1, 19.1.2 e 19.2.1. Componentes vulneráveis também são utilizados em pacotes Next.js (16 milhões de downloads por semana), react-router (20 milhões de downloads por semana), waku, @parcel/rsc, @vitejs/plugin-rsc e rwsdk.
No framework Next.js, a vulnerabilidade (CVE-2025-66478) afeta aplicativos que usam App Router e branches Next.js 15.x e 16.x. Afirma-se que a vulnerabilidade se manifesta na configuração padrão do Next.js (o aplicativo padrão criado pela ferramenta create-next-app está suscetível a ataques). Os usuários devem atualizar para Next.js 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7 ou 16.0.7 o mais rápido possível.
Fonte: opennet.ru
