Sólo disponible en inglés

Por el momento, esta página solo está disponible en inglés. Lamentamos las molestias. Vuelva a visitar esta página más tarde.

CVE-2025-29927: elusión de autorización en Next.js

Matthew Mathur

Senior Security Researcher, Fastly

Equipo de Security Research de Fastly

Equipo de Security Research de Fastly, Fastly

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 es pages/_middleware. Debe estar en un directorio pages/ 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 o src/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 o src/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.

Referencias