Vulnerabilidad Crítica en Next.js Permite a Hackers Saltar la Autorización

Estándar

Se ha descubierto una vulnerabilidad de gravedad crítica en Next.js, un popular framework de desarrollo web de código abierto. Este fallo de seguridad podría permitir a los atacantes eludir los controles de autorización, lo que representa un riesgo significativo para las aplicaciones web construidas con esta tecnología.

La vulnerabilidad, identificada como CVE-2025-29927, permite a los atacantes enviar solicitudes que alcanzan rutas de destino sin pasar por las comprobaciones de seguridad esenciales.

Next.js es un framework de React muy utilizado, con más de 9 millones de descargas semanales en npm. Desarrolladores front-end y full-stack lo utilizan para crear aplicaciones web completas, incluyendo componentes de middleware para la autenticación y autorización de usuarios. Empresas notables como TikTok, Twitch, Hulu, Netflix, Uber y Nike utilizan Next.js para sus sitios y aplicaciones.

¿Cómo Funciona el Ataque?

En Next.js, los componentes de middleware se ejecutan antes de que una solicitud llegue al sistema de enrutamiento de la aplicación. Estos componentes tienen funciones importantes, como la autenticación, la autorización, el registro, el manejo de errores, la redirección de usuarios, la aplicación de bloqueo geográfico o los límites de velocidad.

Para evitar bucles infinitos donde el middleware se activa a sí mismo repetidamente, Next.js utiliza una cabecera llamada ‘x-middleware-subrequest’. Esta cabecera indica si las funciones de middleware deben aplicarse o no.

La función ‘runMiddleware’ procesa las solicitudes entrantes y recupera esta cabecera. Si detecta la cabecera ‘x-middleware-subrequest’ con un valor específico, se omite toda la cadena de ejecución del middleware y la solicitud se reenvía a su destino.

Un atacante puede enviar manualmente una solicitud que incluya esta cabecera con el valor correcto, eludiendo así los mecanismos de protección.

El impacto y la solución

Según los investigadores Allam Rachid y Allam Yasser, quienes descubrieron la vulnerabilidad y publicaron un informe técnico, «la cabecera y su valor actúan como una llave universal que permite anular las reglas».

Esta vulnerabilidad afecta a todas las versiones de Next.js anteriores a la 15.2.3, 14.2.25, 13.5.9 y 12.3.5. Se recomienda a los usuarios actualizar a las revisiones más recientes lo antes posible, ya que los detalles técnicos para explotar este problema de seguridad son públicos.

El boletín de seguridad de Next.js aclara que CVE-2025-29927 solo afecta a las versiones autoalojadas que utilizan ‘next start’ con ‘output: standalone’. Las aplicaciones Next.js alojadas en Vercel y Netlify, o implementadas como exportaciones estáticas, no se ven afectadas.

También se ven afectados los entornos donde el middleware se utiliza para la autorización o los controles de seguridad y no hay validación posterior en la aplicación.

Si la aplicación de parches no es posible en este momento, la recomendación es bloquear las solicitudes de usuarios externos que incluyan la cabecera ‘x-middleware-subrequest’.