Recientemente se descubrió una grave vulnerabilidad que está causando revuelo en la comunidad de Next.js. Se trata de la CVE-2025-29927, una falla que afecta al middleware del framework y que podría poner en riesgo a millones de aplicaciones que lo utilizan.
¿Qué es la vulnerabilidad CVE-2025-29927?
La CVE-2025-29927 (con un puntaje crítico de CVSS 9.1) es una falla que permite a los atacantes saltarse las comprobaciones de seguridad del middleware. El middleware en Next.js se encarga de interceptar las solicitudes HTTP entrantes y suele usarse para cosas importantes como:
- Control de acceso
- Validación de sesiones
- Redirecciones
- Agregado de encabezados de seguridad
El problema está en que esta vulnerabilidad permite que un atacante manipule una solicitud HTTP usando el encabezado x-middleware-subrequest
. Con ciertos valores específicos, este encabezado puede engañar al middleware y hacer que se salte esas verificaciones de seguridad que muchos desarrolladores dan por sentado. En otras palabras, si tu app confía en el middleware para proteger áreas sensibles, esta vulnerabilidad podría dejar esas secciones expuestas.
¿Qué versiones están en peligro?
La vulnerabilidad afecta a:
-
Next.js 11.1.4 hasta la 13.5.6
-
Versiones sin parchear de Next.js 14.x y 15.x
Si tu aplicación utiliza middleware para manejar la autenticación, permisos u otras medidas de seguridad, es muy probable que estés en riesgo.
¿Cómo se explota esta vulnerabilidad?
La forma en que los atacantes aprovechan este fallo varía según la versión:
-
Versiones antiguas (anteriores a 12.2): El exploit se activa cuando el encabezado HTTP incluye esta línea: x-middleware-subrequest: pages/_middleware
-
Versiones más recientes: Los atacantes utilizan un patrón repetitivo en el encabezado para engañar al middleware: x-middleware-subrequest: middleware:middleware:middleware.
- Si tu proyecto utiliza una estructura de directorio basada en
src/
, también podrían emplear este formato: x-middleware-subrequest: src/middleware:...
Esta técnica permite que los atacantes eviten las comprobaciones de seguridad del middleware y accedan a rutas protegidas o realicen acciones no autorizadas.
Podría interesarte leer: Identificando vulnerabilidades: El poder de las CVE
¿Por qué esta vulnerabilidad es tan peligrosa?
El riesgo de la CVE-2025-29927 se debe a tres factores clave:
-
No se requiere autenticación para que el exploit funcione.
-
Permite saltarse silenciosamente las comprobaciones de seguridad en las que confían los desarrolladores para controlar el acceso.
-
Sus consecuencias pueden ser graves, incluyendo el robo de datos sensibles o la interrupción del servicio.
Un análisis de Shodan reveló que hay más de 330,000 instancias de Next.js potencialmente expuestas en Internet, siendo Estados Unidos el país con mayor número de casos.
Podría interesarte leer: ¿Qué es un Ataque de Exploit?
¿Cómo mitigar la amenaza?
Si usas Next.js, es importante que tomes medidas cuanto antes para proteger tu aplicación. El equipo de Next.js ya lanzó parches para solucionar esta vulnerabilidad, así que lo mejor que puedes hacer es actualizar a la última versión disponible.
¿Qué versión necesitas instalar?
-
Si usas la versión 15.x, actualiza a 15.2.3 o superior.
-
Si usas la versión 14.x, actualiza a 14.2.25 o superior.
-
Si estás en una versión entre la 11.1.4 y la 13.5.6, lamentablemente no hay un parche disponible, así que te conviene planificar una migración cuanto antes.
¿No puedes actualizar de inmediato?
Si por alguna razón no puedes actualizar tu Next.js ahora mismo, hay una solución temporal: Bloquea las solicitudes externas que incluyan el encabezado x-middleware-subrequest
.
Eso sí, este bloqueo debe hacerse en tu proxy o en la capa de red (por ejemplo, en tu CDN o firewall) y no dentro del middleware de tu aplicación, ya que hacerlo dentro del propio Next.js no resolvería el problema por completo.
Esta medida ayuda a reducir el riesgo, pero ten en cuenta que podría afectar algunas funciones internas legítimas de tu app, así que procede con precaución.
Pasos recomendados para proteger tu aplicación
-
Revisa qué versión de Next.js estás usando y actualízala si es necesario.
-
Analiza tu middleware, especialmente en las partes que controlan accesos y permisos.
-
Monitorea tus registros para detectar solicitudes sospechosas que contengan el encabezado
x-middleware-subrequest
. -
Actualiza tus modelos de seguridad, considerando que el middleware por sí solo no es suficiente para proteger tu aplicación.
Tomar estas medidas te ayudará a mantener tu aplicación segura y minimizar el riesgo ante esta vulnerabilidad.