Falhas críticas no Next.js permitem execução remota de código
Duas vulnerabilidades críticas no Next.js podem permitir a execução remota de código sem autenticação em determinadas aplicações hospedadas no Windows. Os problemas estão relacionados ao tratamento de caminhos de arquivos e ao processamento de imagens no formato AVIF pela API de Otimização de Imagens.
As falhas foram identificadas como CVE-2026-75604 e GHSA-2xp9-vwfh-vxw4. Segundo os avisos de segurança, o risco é especialmente relevante para sistemas que aceitam arquivos enviados por usuários ou disponibilizam publicamente endpoints de otimização de imagens.
Vulnerabilidade de path traversal
A primeira falha, registrada como CVE-2026-75604, recebeu pontuação CVSS 9.8, classificação considerada crítica. O problema está associado à categoria CWE-22, conhecida como path traversal ou traversal de diretórios.
A vulnerabilidade surge quando uma aplicação utiliza dados controlados pelo atacante para montar caminhos de arquivos sem validar corretamente elementos especiais do caminho. Em determinadas condições, um invasor pode manipular esses dados para acessar arquivos fora do diretório originalmente previsto ou influenciar a forma como o sistema localiza e processa recursos.
O problema afeta aplicações que utilizam o Pages Router ou o App Router sem Cache Components. As versões vulneráveis incluem releases do Next.js a partir da série 13.4 até a 15.5.24, além das versões da linha 16.0 até antes da 16.3.3, conforme a separação entre versões afetadas e corrigidas.
Em ambientes Windows, o impacto pode ser ainda maior quando o processo do servidor possui permissões elevadas ou acesso a diretórios sensíveis. Por isso, a exploração não deve ser avaliada apenas pelo código da aplicação, mas também pela configuração do sistema operacional e pelas permissões atribuídas ao serviço.
Risco associado ao processamento de imagens AVIF
A segunda vulnerabilidade está relacionada à API de Otimização de Imagens do Next.js quando ela é configurada para processar arquivos AVIF. O componente depende da biblioteca libheif, utilizada pelo pacote Sharp para redimensionar, converter e otimizar imagens.
Um atacante pode criar um arquivo AVIF especialmente manipulado e enviá-lo a um endpoint exposto pela aplicação. Se o arquivo for processado por uma versão vulnerável da cadeia de dependências, o servidor poderá sofrer corrupção de memória ou outros comportamentos capazes de levar à execução de código arbitrário.
O risco pode atingir confidencialidade, integridade e disponibilidade. Na prática, uma exploração bem-sucedida poderia permitir acesso indevido a informações, alteração de dados, instalação de ferramentas maliciosas ou interrupção do serviço.
Essa falha afeta versões do Next.js a partir da 10.0.0 até as versões anteriores à 15.5.24 e à 16.3.3. Aplicações que não recebem uploads diretamente também devem ser avaliadas, pois a API de otimização pode processar URLs ou arquivos fornecidos por usuários e sistemas externos.
Versões corrigidas e ausência de solução temporária
A Vercel disponibilizou correções nas versões 15.5.24 e 16.3.3. Para as aplicações afetadas hospedadas no Windows, não foi indicada uma solução alternativa capaz de eliminar o risco. Dessa forma, a atualização do framework e das dependências deve ser tratada como prioridade.
Enquanto a correção da dependência era distribuída, o suporte à otimização AVIF foi desabilitado no Next.js como medida preventiva. Essa ação reduz a superfície de ataque, mas não substitui a atualização definitiva, especialmente em ambientes que utilizam outras funcionalidades vulneráveis.
Medidas recomendadas para administradores
As equipes responsáveis devem atualizar o Next.js para uma versão corrigida, regenerar os arquivos de bloqueio de dependências e reconstruir as imagens ou contêineres utilizados em produção. Apenas alterar o ambiente de desenvolvimento não é suficiente: os serviços ativos precisam executar efetivamente os pacotes atualizados.
Também é importante verificar a versão instalada dentro do contêiner ou do servidor, pois o arquivo de configuração do projeto pode indicar uma versão segura enquanto o ambiente em execução continua utilizando uma instalação antiga.
A análise deve incluir os seguintes pontos:
– endpoints públicos de upload de imagens;
– uso da API de Otimização de Imagens;
– aplicações hospedadas em servidores Windows;
– permissões do processo responsável pelo Next.js;
– versões instaladas do pacote Sharp e da biblioteca libheif;
– registros de requisições com padrões suspeitos de traversal;
– tentativas incomuns de processamento de arquivos AVIF;
– alterações inesperadas em arquivos e processos do sistema.
Como reduzir o risco durante a atualização
Quando a atualização imediata não for possível, a organização deve limitar temporariamente o acesso aos endpoints de imagem, bloquear uploads AVIF e restringir a aplicação atrás de uma camada de proteção, como um firewall de aplicação. Essas medidas devem ser consideradas paliativas, pois filtros superficiais podem ser contornados por arquivos especialmente preparados.
Também é recomendável armazenar uploads em áreas isoladas, sem permissões de execução, e impedir que o processo da aplicação tenha acesso desnecessário a arquivos do sistema. A aplicação deve operar com uma conta de baixo privilégio e utilizar validação rigorosa de extensão, tipo MIME, tamanho e conteúdo real dos arquivos.
Importância dos registros e da investigação
Organizações que mantêm sistemas expostos devem revisar os logs desde a data da última atualização conhecida. Busque requisições com sequências como `../`, caminhos codificados, referências a diretórios do Windows e chamadas repetidas à otimização de imagens.
A existência desses padrões não confirma uma invasão, mas pode indicar tentativa de exploração. Caso sejam identificados processos desconhecidos, arquivos novos em diretórios temporários, conexões de saída incomuns ou alterações não autorizadas, o servidor deve ser isolado para investigação.
Como a execução remota de código pode comprometer credenciais e tokens armazenados no ambiente, a atualização deve ser acompanhada da rotação de segredos, chaves de API, credenciais de banco de dados e tokens de serviços externos.
Impacto para pipelines de desenvolvimento
Os pipelines de integração e entrega contínuas também precisam ser revisados. É necessário atualizar arquivos como `package-lock.json`, `yarn.lock` ou `pnpm-lock.yaml`, limpar caches antigos e reconstruir os artefatos a partir de dependências verificadas.
Imagens de contêiner previamente criadas podem continuar vulneráveis mesmo após a alteração do código-fonte. Por isso, novas imagens devem ser geradas e implantadas, com confirmação da versão efetivamente carregada em produção.
As vulnerabilidades foram relatadas pelos pesquisadores identificados como evolutionstorm e B0RI. Diante da gravidade dos problemas, aplicações Next.js que estejam dentro das faixas afetadas devem ser atualizadas imediatamente, com atenção especial aos ambientes Windows e aos serviços que aceitam ou processam imagens AVIF.
