Vulnerabilidades do Next.js em 30/09/2026

Os sete avisos exigem conferências diferentes no seu projeto. Algumas falhas dependem das funções com 'use cache', outras envolvem a geração de páginas ou imagens. O endpoint MCP afeta somente o servidor de desenvolvimento. Use as condições de cada ficha para identificar os recursos presentes no seu ambiente e compare a versão instalada do pacote next com as faixas informadas.

Os valores de versões abaixo preservam a informação da API, inclusive o caractere '?' nas correções ainda sem número completo. Essas indicações exigem confirmação de uma versão concreta no comunicado oficial. A situação da correção descreve o projeto Next.js e não confirma que você atualizou a aplicação. As pontuações são do CVSS 4.0.

Gravidade altaCVSS: 8,3/10Correção não informada

Otimização de imagens permite requisições do servidor a endereços privados

Uma URL remota autorizada para a otimização de imagens pode direcionar o servidor para um destino controlado por um atacante, inclusive um endereço privado. Essa falha de SSRF (Server-Side Request Forgery) depende de uma URL permitida cujo domínio esteja sob controle do atacante. Você precisa revisar a confiança nos domínios autorizados e em seus registros de DNS.

Casos de uso afetados

  • Você configurou images.remotePatterns para permitir imagens de um domínio cujos registros de DNS podem ser alterados por um atacante. A otimização dessas imagens pode provocar requisições a endereços privados acessíveis pelo servidor.

Confira na sua instância

Examine images.remotePatterns na configuração efetivamente usada pela aplicação. Para cada domínio autorizado, confira a administração dos registros de DNS e remova as permissões para domínios sem confiança confirmada, conforme a orientação do comunicado. Consulte os registros de saída de rede do servidor para procurar acessos do otimizador a endereços privados. Compare a versão instalada do pacote next com a faixa informada.

Versões afetadas e correções

Faixas declaradas no comunicado oficial, por linha de manutenção
LinhaAfetadasCorrigidas
16.x>= 16.0.0 < 16.3.?16.3.?

Segundo o comunicado, a aplicação não é afetada quando images.remotePatterns não está configurado. A revisão dos domínios é a alternativa temporária indicada. A API mantém '?' tanto no limite da faixa afetada quanto na versão corrigida.

Gravidade moderadaCVSS: 6,3/10Correção não informada

Preenchimento de cache mistura rascunhos com respostas públicas

As funções com 'use cache' compartilham um preenchimento ainda em andamento entre requisições com a mesma chave, sem separar o Draft Mode do acesso comum. Quando esses acessos coincidem, uma resposta pública pode receber conteúdo ainda não publicado, sem autenticação. Se essa resposta gerar uma página sob demanda, o rascunho pode ficar gravado nela e aparecer para os visitantes seguintes até a revalidação, inclusive em outra rota que use a mesma função.

Casos de uso afetados

  • Você habilitou Cache Components ou experimental.useCache e oferece prévias com Draft Mode. As funções compartilhadas de cache retornam conteúdo diferente conforme o acesso recebe a versão publicada ou o rascunho.
  • Uma rota gerada sob demanda usa a mesma função de cache da prévia editorial. A coincidência entre a geração pública e a prévia pode gravar conteúdo não publicado na página gerada.

Confira na sua instância

Abra a configuração do Next.js e confira se Cache Components ou experimental.useCache estão habilitados. Acompanhe as funções com 'use cache' usadas pelas prévias e identifique quais retornam rascunhos conforme o Draft Mode. Confira também as rotas geradas sob demanda que reutilizam essas funções. Nas páginas públicas já geradas, procure conteúdo marcado como não publicado no seu sistema editorial.

Versões afetadas e correções

Faixas declaradas no comunicado oficial, por linha de manutenção
LinhaAfetadasCorrigidas
16.3.x16.3.016.3.?

A coincidência também pode fazer a prévia receber o conteúdo publicado no lugar do rascunho. A API ainda apresenta a correção como 16.3.?.

Gravidade moderadaCVSS: 6,3/10Correção não informada

Páginas estáticas em hospedagem própria podem receber o cache de outra rota

Uma aplicação com Pages Router em hospedagem própria pode ter a entrada de cache de uma página substituída pelo conteúdo de outra rota. A falha alcança páginas com geração estática ou regeneração incremental, conhecidas como SSG e ISR. Depois da substituição, todos os visitantes da página afetada recebem o conteúdo incorreto até a revalidação daquela entrada.

Casos de uso afetados

  • Você hospeda o Next.js fora da Vercel e usa o Pages Router para páginas geradas estaticamente. O cache de uma dessas páginas pode servir o conteúdo pertencente a outra URL.
  • As páginas do seu Pages Router usam regeneração incremental em hospedagem própria. A entrada alterada continua respondendo com o conteúdo incorreto até ser revalidada.

Confira na sua instância

Confirme onde a aplicação está hospedada e examine as páginas do Pages Router. Identifique o uso de getStaticProps e da opção revalidate para localizar a geração estática e a regeneração incremental. Compare o conteúdo retornado pelas URLs públicas com o conteúdo esperado para cada rota, incluindo respostas já armazenadas em cache. Confira a versão instalada do pacote next na linha correspondente.

Versões afetadas e correções

Faixas declaradas no comunicado oficial, por linha de manutenção
LinhaAfetadasCorrigidas
15.x>= 15.0.015.5.?
16.x>= 16.0.016.3.?

O comunicado exclui as aplicações hospedadas na Vercel. As correções aparecem na API como 15.5.? e 16.3.?, sem números completos.

Gravidade moderadaCVSS: 6,3/10Correção não informada

Imagens de metadados ignoram a restrição de segmentos dinâmicos

No App Router compilado com webpack, as rotas de imagens de metadados ignoram a opção dynamicParams. Um atacante pode acessar imagens opengraph-image ou twitter-image de segmentos dinâmicos que você excluiu deliberadamente de generateStaticParams(). Assim, a lista de segmentos autorizados para a geração não restringe essas imagens como você esperava.

Casos de uso afetados

  • Você usa o App Router com webpack e limita os segmentos dinâmicos por generateStaticParams() e dynamicParams. As imagens de compartilhamento associadas a segmentos excluídos podem continuar acessíveis pelas rotas de metadados.

Confira na sua instância

Confira nos comandos e logs de build se a aplicação usa webpack. Localize as rotas opengraph-image e twitter-image dentro dos segmentos dinâmicos e compare a configuração de dynamicParams com os valores retornados por generateStaticParams(). Examine os testes de acesso dessas imagens para confirmar que também abrangem segmentos deliberadamente excluídos, além das páginas correspondentes.

Versões afetadas e correções

Faixas declaradas no comunicado oficial, por linha de manutenção
LinhaAfetadasCorrigidas
16.x>= 16.0.016.3.?

O cenário documentado envolve o App Router compilado com webpack. O aviso não confirma o mesmo comportamento em outros compiladores. A correção consta como 16.3.? na API.

Gravidade moderadaCVSS: 6,3/10Correção disponível

Funções de cache aninhadas reutilizam conteúdo entre valores de root params

Com cacheComponents: true, uma função com 'use cache' pode chamar outra função em cache que lê um root param. Quando a chamada interna usa uma entrada existente, a chave da função externa pode omitir esse root param. O conteúdo gravado pela primeira execução fica disponível para requisições com outros valores, tanto na pré-renderização quanto na renderização dinâmica. Cabeçalhos de cache compartilhado podem ampliar a distribuição da resposta incorreta.

Casos de uso afetados

  • Você habilitou cacheComponents: true e tem funções com 'use cache' aninhadas. A função interna lê um root param, mas o reaproveitamento de sua entrada pode deixar esse valor fora da chave da função externa.
  • As respostas produzidas por essas funções permitem cache compartilhado. Além do cache da aplicação, caches intermediários podem redistribuir conteúdo gerado para outro valor do root param.

Confira na sua instância

Procure cacheComponents: true na configuração e acompanhe as chamadas entre funções com 'use cache'. Identifique as funções internas que leem root params e confira nos testes se as respostas permanecem corretas quando esses valores variam com o cache já preenchido. Examine os cabeçalhos de cache dessas respostas para identificar armazenamento compartilhado. No ambiente executado, confirme se o pacote next ainda está na versão 16.3.0 ou já recebeu a correção 16.3.8.

Versões afetadas e correções

Faixas declaradas no comunicado oficial, por linha de manutenção
LinhaAfetadasCorrigidas
16.3.x16.3.016.3.8

O atacante não escolhe qual conteúdo será exposto. A resposta depende da execução que preencheu a entrada primeiro. O comunicado não informa alternativa temporária e orienta a atualização para a versão corrigida.

Gravidade moderadaCVSS: 6,3/10Correção não informada

Página catch-all na raiz permite contaminar o cache de páginas estáticas

Uma página catch-all na raiz, combinada com rotas de geração estática ou regeneração incremental, permite contaminar o cache compartilhado de respostas com uma única requisição preparada, sem autenticação. O aviso relaciona essa falha à substituição de conteúdo entre visitantes e à indisponibilidade persistente das páginas afetadas.

Casos de uso afetados

  • Seu projeto combina uma página catch-all na raiz com rotas geradas estaticamente ou regeneradas de forma incremental. Essa combinação permite que uma requisição sem autenticação altere o cache compartilhado usado para responder aos visitantes.

Confira na sua instância

Examine a estrutura de páginas para localizar uma catch-all na raiz, como pages/[...slug].tsx. Confira se a aplicação também possui rotas com geração estática ou regeneração incremental. Compare as respostas em cache dessas rotas com o conteúdo esperado e examine os logs nos períodos de conteúdo trocado ou indisponibilidade. Consulte a versão instalada do pacote next e a correção anunciada para sua linha.

Versões afetadas e correções

Faixas declaradas no comunicado oficial, por linha de manutenção
LinhaAfetadasCorrigidas
16.x>= 16.0.016.3.?
15.x>= 15.0.015.5.?

Este aviso depende da combinação com uma catch-all na raiz. O comunicado não informa uma exclusão para aplicações na Vercel. As versões corrigidas permanecem como 16.3.? e 15.5.? na API.

Gravidade baixaCVSS: 2,3/10Correção não informada

Endpoint MCP do servidor de desenvolvimento expõe informações do projeto

O servidor iniciado com next dev disponibiliza um endpoint MCP (Model Context Protocol) sem conferir o site de origem da requisição. Uma página maliciosa aberta no seu navegador pode consultar esse endpoint e obter o caminho do projeto no disco ou trechos de código presentes nos relatórios de erro. A exposição também alcança a lista de rotas e os logs de desenvolvimento.

Casos de uso afetados

  • Você mantém a aplicação aberta com next dev e navega por outros sites no mesmo período. Uma página maliciosa pode aproveitar o servidor de desenvolvimento ativo para consultar informações do projeto.

Confira na sua instância

Confira o comando do processo em execução e os scripts usados para iniciar o projeto. Identifique os ambientes que executam next dev e consulte a versão instalada do pacote next, por exemplo com npm ls next. Nos relatórios de erro e logs locais, confira quais trechos de código e caminhos do projeto ficariam expostos pelo endpoint descrito no aviso.

Versões afetadas e correções

Faixas declaradas no comunicado oficial, por linha de manutenção
LinhaAfetadasCorrigidas
16.x>= 16.0.016.3.?

As aplicações em produção não disponibilizam esse endpoint. A API indica a correção como 16.3.?, sem informar o número completo.

Voltar aos compilados de vulnerabilidades
Luiz Eduardo Oliveira Fonseca

Luiz Eduardo Oliveira Fonseca

Fundador e Mentor

Programador há mais de 20 anos, especialista em Mautic e automação de marketing. Fundador da Powertic e da Promovaweb. Embaixador global do n8n (Community Awards 2024/2025), Bas...

Área pública disponível

Participe da comunidade no Discord

Entre pelo convite oficial, apresente-se à comunidade e acompanhe os avisos e projetos compartilhados entre os encontros.