Lo que debes saber
El 21 de marzo de 2025, Vercel publicó una advertencia de seguridad para CVE-2025-29927 en Next.js
CVE-2025-29927 es una vulnerabilidad de elusión de autorización en el middleware de Next.js
La vulnerabilidad afecta a las versiones:
15.x antes de 15.2.3
14.x antes de 14.2.25
13.x antes de 13.5.9
12.x antes de 12.3.5
11.x, todas las versiones
Los clientes de NGWAF de Fastly pueden protegerse ante esta vulnerabilidad activando la regla de plantilla de CVE-2025-29927.
Detalles de la vulnerabilidad CVE-2025-29927
Next.js es un conocido marco de React para desarrollar aplicaciones web full-stack. En Next.js, Middleware es una función que permite ejecutar código antes de que una ruta procese una petición. Facilita la gestión dinámica de solicitudes, como autorizaciones, redireccionamientos y modificaciones de respuesta, antes de llegar a una ruta o página API. Esta vulnerabilidad afecta a la forma en que Next.js decide aplicar middleware a una petición determinada. Cuando se procesa una petición, Next.js recupera el valor del encabezado x-middleware-subrequest y lo utiliza para decidir si aplica middleware. Cuando el valor del encabezado contiene un valor concreto (diferente para cada versión vulnerable), Next.js omitirá la aplicación de cualquier middleware y reenviará la petición.
En resumen, cuando una petición contiene el encabezado x-middleware-subrequest
y un valor (específico de la versión), se omitirá el middleware de Next.js.
Las versiones anteriores de Next.js buscan que el valor de la variable middlewareInfo.name
esté presente en el valor del encabezado. Esta ruta es simplemente donde se encuentra el middleware, pero puede variar según las versiones y las instalaciones.
Este es el aspecto por versión:
Antes de la versión 12.2
El middleware por defecto se encuentra en
pages/_middelware.ts
, por lo que la carga útil espages/_middleware
. Debe estar en un directoriopages/
en estas versiones.Sin embargo, puedes tener directorios anidados con middleware, por lo que podría ser algo como
pages/example/_middleware
, según la configuración de la aplicación.
Después de la versión 12.2 pero antes de la versión 15.x
El middleware ya no se encuentra en el directorio pages y se ha eliminado el prefijo underscore; no obstante, Next.js también admite un directorio
/src
donde se podría ubicar el archivo de middleware.La carga útil contiene
middleware
osrc/middleware
Versión 15.x
Next.js ahora comprueba que el
middlewareInfo.name
esté presente al menos 5 veces para eludir el middleware, y el directorio/src
sigue siendo una posibilidad.La carga útil contiene
middleware:middleware:middleware:middleware:middleware
osrc/middleware:src/middleware:src/middleware:src/middleware:src/middleware:
Para más detalles sobre las vulnerabilidades y su descubrimiento, Rachid y Yasser las analizan en su artículo. Además de la elusión de la autorización, también ilustran cómo se puede aprovechar la vulnerabilidad para provocar una denegación de servicio por envenenamiento de la caché.
Recomendaciones prácticas
Fastly recomienda actualizar, si es posible, a las siguientes versiones corregidas de Next.js que solucionan esta vulnerabilidad:
Para 15.x, corregido en 15.2.3
Para 14.x, corregido en 14.2.25
Para 13.x, corregido en 13.5.9
Para 12.x, corregido en 12.3.5
Para 11.x, no hay ningún parche disponible
Para los clientes de Fastly NGWAF
Si no puedes parchear tu versión de Next.js, necesitas tiempo para aplicar el parche o buscas más protección frente a esta vulnerabilidad, puedes habilitar la regla de plantilla para CVE-2025-29927. Si necesitas más ayuda para aplicar un parche virtual, ponte en contacto con nuestro equipo de asistencia en materia de seguridad.