Detecção e mitigação de uma vulnerabilidade de desvio de autorização em Next.js
Sumário executivo
Em 21 de março de 2025, uma nova vulnerabilidade de desvio de autorização crítica no Next.js com uma pontuação CVSS de 9.1 foi atribuída à CVE‑2025‑29927 e publicada. Essa vulnerabilidade permite que os invasores ignorem as verificações de autenticação e autorização explorando uma falha no gerenciamento de middleware da estrutura, deixando rotas confidenciais abertas ao acesso não autorizado.
A vulnerabilidade pode ser explorada sem autenticação, concedendo acesso não autorizado a rotas protegidas.
O Grupo de inteligência de segurança da Akamai (SIG) viu tentativas iniciais de exploração sondando servidores em potencial para essa vulnerabilidade.
Nesta publicação no blog, os pesquisadores da Akamai fornecem detalhes sobre a vulnerabilidade, técnicas de exploração e estratégias de detecção.
Uma regra rápida do mecanismo de segurança adaptável da Akamai fornece proteção automaticamente para os clientes do Akamai App e do API Protector.
O que é a CVE-2025-29927?
A CVE-2025-29927 é uma vulnerabilidade de desvio de autorização em Next.js, uma estrutura de reação de código-fonte aberto amplamente usada para ajudar a diminuir os tempos de carregamento do site e aumentar o valor de SEO. A vulnerabilidade foi publicada em 21 de março de 2025 e recebeu uma classificação muito crítica de 9.1 CVSS. Se explorada, um invasor pode ignorar verificações de segurança baseadas em middleware falsificando um cabeçalho destinado exclusivamente ao uso interno.
O Next.js usa cabeçalhos para evitar loops infinitos durante o processamento de solicitações, mas seu valor previsível, com base no caminho do arquivo middleware, pode ser facilmente imitado por um invasor. Ao incluir o valor de cabeçalho correto em uma solicitação HTTP, um invasor pode, em alguns casos, enganar a aplicação para ignorar verificações de autenticação e autorização e obter acesso a recursos protegidos.
Detalhes da vulnerabilidade
O Next.js emprega middleware como uma maneira de processar solicitações HTTP de entrada antes que elas alcancem a lógica principal da aplicação. O middleware normalmente executa tarefas importantes, como autenticação, autorização e configuração de cabeçalhos de segurança. A estrutura usa um cabeçalho interno chamado "x‑middleware‑subrequest", que é usado para gerenciar esses processos, gerenciar fluxos de solicitações internas e evitar problemas como recursão infinita durante o tratamento de solicitações.
O problema principal reside na validação imprópria do cabeçalho "x‑middleware‑subrequest". Esse cabeçalho é destinado apenas para uso interno, mas seu valor é previsível, geralmente com base no local ou na nomenclatura do arquivo middleware. Como resultado, um invasor pode criar uma solicitação simples que imita esse cabeçalho de solicitação, o que engana o sistema no tratamento da solicitação como interna e ignorando verificações críticas.
Quando o middleware é ignorado, a aplicação não executa suas rotinas normais de segurança, como verificação de identidade ou função, levando a possível acesso não autorizado a partes confidenciais ou restritas da aplicação. Quando todas as condições são atendidas, essa vulnerabilidade é especialmente perigosa porque pode ser explorada sem qualquer autenticação anterior.
A CVE-2025-29927 afeta várias versões do Next.js. Embora o método de exploração varie ligeiramente entre as versões, o problema principal permanece consistente. Em versões mais antigas, o exploit aproveita um cabeçalho de solicitação criado que inclui _middleware como um valor; em versões mais recentes, ele usa middleware ou src/middleware para alinhar com a estrutura de arquivos de middleware atualizada e convenções de nomenclatura.
A vulnerabilidade foi corrigida nas versões 14.2.25 e 15.2.3, mas servidores com execução de versões do Next.js anteriores à 14.2.25 (para 14.x) e 15.2.3 (para 15.x), bem como as versões 11,1.4 a 13.5.6 podem ainda estar vulneráveis.
Tráfego de ataque analisado
O SIG da Akamai observou tentativas iniciais de exploit direcionadas a essa vulnerabilidade, com invasores sondando servidores em potencial. Entre as cargas úteis identificadas, uma técnica notável envolve o uso do cabeçalho x-middleware-request com o valor src/middleware:src/middleware:src/middleware:src/middleware:src/middleware.
Essa abordagem simula várias subsolicitações internas em uma única solicitação, acionando a lógica de redirecionamento interno do Next.js, semelhante a várias explorações de prova de conceito disponíveis (Figura 1).
Também foram observadas outras variantes de ataque especificamente direcionadas a versões mais antigas do Next.js. A Figura 2 ilustra uma variante que usou a carga útil pages/_middleware=.
Mitigação com o Akamai App & API Protector
Em 24 de março de 2025, a equipe de pesquisa de ameaças da Akamai também implantou uma regra rápida do mecanismo de segurança adaptável que detecta a CVE (Figura 3).
3000958 — Next.js Middleware Authorization Bypass (CVE-2025-29927)
App & API Protector Os clientes têm cobertura completa por meio desta nova regra (Figura 4).
A versão 1 da regra rápida tem uma ação padrão definida como Alerta. Para bloquear as tentativas de ataque, os clientes podem definir a ação da regra como Negar depois de revisar os acionadores para eliminar quaisquer falsos positivos.
PORÉM: observamos que alguns clientes podem estar legitimamente usando esse cabeçalho com o nome do middleware como seu valor. Portanto, recomendamos que você não altere esta ação de regra para Negar sem realizar análises adicionais e aplicar condições adicionais.
Resumo
O SIG da Akamai continuará monitorando, relatando e criando mitigações para ameaças como essa, tanto para nossos clientes quanto para a comunidade de segurança em geral. Para acompanhar mais notícias de última hora do SIG da Akamai, confira nossa página inicial da pesquisa e nos siga nas redes sociais.