Detección y mitigación de una vulnerabilidad que permite eludir la autorización en Next.js

Cuando se elude el middleware, la aplicación no realiza sus rutinas de seguridad normales, lo que puede generar un acceso no autorizado.
Cuando se elude el middleware, la aplicación no realiza sus rutinas de seguridad normales, lo que puede generar un acceso no autorizado.

Resumen ejecutivo

  • El 21 de marzo de 2025, se categorizó una nueva vulnerabilidad crítica de elusión de la autorización en Next.js con una puntuación CVSS de 9,1. Se identificó como CVE‑2025‑29927 y se publicó. Esta vulnerabilidad permite que los atacantes omitan las comprobaciones de autenticación y autorización aprovechando un defecto en la gestión del middleware del marco de trabajo, dejando rutas importantes abiertas al acceso no autorizado.

  • La vulnerabilidad se puede aprovechar sin autenticación, lo que permite el acceso no autorizado a rutas protegidas.

  • El grupo de Inteligencia de seguridad (SIG) de Akamai ha observado intentos iniciales de explotación que escanean posibles servidores en busca de la vulnerabilidad.

  • En esta entrada de blog, los investigadores de Akamai proporcionan información detallada sobre la vulnerabilidad, las técnicas de explotación y las estrategias de detección.

  • Una regla rápida de Akamai Adaptive Security Engine proporciona automáticamente protección a los clientes de Akamai App & API Protector

¿Qué es CVE-2025-29927?

CVE‑2025‑29927 es una vulnerabilidad de elusión de la autorización en Next.js, un marco de trabajo React de código abierto que se utiliza ampliamente para ayudar a reducir los tiempos de carga de los sitios web y aumentar el valor del SEO. La vulnerabilidad se hizo pública el 21 de marzo de 2025 y se le asignó una calificación muy crítica, de 9,1, según CVSS. Si se aprovecha, un atacante podría omitir las comprobaciones de seguridad basadas en middleware falsificando un encabezado destinado exclusivamente a uso interno.

Next.js utiliza encabezados para evitar bucles infinitos durante el procesamiento de solicitudes, pero su valor predecible, basado en la ruta del archivo de middleware, puede ser fácilmente imitado por un atacante. Al incluir el valor de encabezado correcto en una solicitud HTTP, un atacante puede engañar en algunos casos a la aplicación para que omita las comprobaciones de autenticación y autorización, y así obtener acceso a los recursos protegidos.

Detalles de la vulnerabilidad

Next.js emplea el middleware como una forma de procesar las solicitudes HTTP entrantes antes de que alcancen la lógica de la aplicación principal. El middleware suele realizar tareas importantes como la autenticación, la autorización y la configuración de encabezados de seguridad. El marco utiliza un encabezado interno denominado "x-middleware-subrequest", que se utiliza para gestionar estos procesos, gestionar flujos de solicitudes internos y evitar problemas como la recursividad infinita durante la gestión de solicitudes.

El principal problema reside en la validación inadecuada del encabezado "x-middleware-subrequest", que está destinado únicamente a uso interno, pero su valor es predecible y suele basarse en la ubicación o el nombre del archivo de middleware. Como resultado, un atacante puede crear una solicitud simple que imita este encabezado de solicitud, lo que engaña al sistema para que trate la solicitud como si fuese interna y por tanto omita comprobaciones críticas.

Cuando se omite el middleware, la aplicación no realiza sus rutinas de seguridad normales, como la verificación de identidad o funciones, lo que da lugar a un posible acceso no autorizado a partes confidenciales o restringidas de la aplicación. Si se cumplen todas las condiciones, esta vulnerabilidad se vuelve especialmente peligrosa porque se puede explotar sin ninguna autenticación previa.

CVE-2025-29927 afecta a varias versiones de Next.js. Aunque el método de explotación varía ligeramente entre versiones, el problema principal sigue siendo el mismo. En versiones anteriores, la vulnerabilidad aprovecha un encabezado de solicitud especialmente diseñado que incluye _middleware como valor; en las versiones más recientes utiliza middleware o src/middleware para alinearse con la estructura de archivos de middleware actualizada y las convenciones de nomenclatura.

La vulnerabilidad se corrigió en las versiones 14.2.25 y 15.2.3 de Next.js, pero los servidores que ejecutan versiones anteriores a la 14.2.25 (para 14.x) y 15.2.3 (para 15.x), así como las versiones entre la 11.1.4 y la 13.5.6 podrían seguir siendo vulnerables.

Tráfico de ataque observado

El SIG de Akamai ha observado intentos iniciales de explotación dirigidos a esta vulnerabilidad, en los que los atacantes examinan posibles servidores. Entre las cargas útiles identificadas, una técnica destacable se basa en el uso del encabezado x-middleware-request con el valor src/middleware:src/middleware:src/middleware:src/middleware:src/middleware.

Este enfoque simula varias subsolicitudes internas dentro de una sola solicitud, y activa la lógica de redirección interna de Next.js. Se asemeja mucho a varias explotaciones de prueba de concepto disponibles públicamente (Figura 1).

This approach simulates multiple internal subrequests within a single request, triggering Next.js’s internal redirect logic — closely resembling several publicly available proof-of-concept exploits (Figure 1). Fig. 1: Examples of a common attack variant

También se observaron otras variantes del ataque dirigidas específicamente a versiones anteriores de Next.js. La Figura 2 ilustra una variante que utilizó la carga útil pages/_middleware=.

Figure 2 illustrates a variant that used the payload pages/_middleware=. Fig 2: Another example of a common attack variant

Mitigación con Akamai App & API Protector

El 24 de marzo de 2025, el equipo de investigación de amenazas de Akamai también implementó una regla rápida del motor de seguridad adaptable que detecta la CVE (Figura 3).

  • 3000958: Elusión de la autorización de middleware en Next.js (CVE-2025-29927)

On March 24, 2025, Akamai Threat Research Team also deployed an Adaptive Security Engine Rapid Rule that detects the CVE (Figure 3). Fig 3. Rapid Rule trigger as seen in Web Security Analytics

App & API Protector ofrece cobertura completa para sus clientes con esta nueva regla (Figura 4).

On March 24, 2025, Akamai Threat Research Team also deployed an Adaptive Security Engine Rapid Rule for App & API Protector customers to provide them with full coverage (Figure 4). Fig. 4: Adaptive Security Engine Rapid Rule provides full coverage to App & API Protector customers

La versión 1 de la regla rápida tiene la acción predeterminada establecida en Alert. Para bloquear los intentos de ataque, los clientes pueden establecer la acción de la regla en Deny después de revisar los activadores para eliminar los falsos positivos.

TENGA EN CUENTA: Hemos observado que algunos clientes pueden estar utilizando legítimamente este encabezado con el nombre del middleware como su valor. Por lo tanto, recomendamos no cambiar esta acción de regla a Deny sin realizar más análisis ni aplicar condiciones adicionales.

Resumen

El SIG de Akamai seguirá creando y supervisando mitigaciones para este tipo de amenazas e informando sobre ellas, en beneficio de nuestros clientes y de la comunidad de seguridad en general. Para estar al día de las últimas noticias del SIG de Akamai, consulte nuestra página de inicio sobre investigación y síganos en las redes sociales.