Next.js publicó el 30 de septiembre su actualización de seguridad de septiembre: las versiones 16.3.8 y 15.5.27 corrigen siete vulnerabilidades, una de gravedad alta, cinco medias y una baja. Si actualizaste con el parche del 22 de septiembre, te toca otra vez. Y hay un matiz que conviene no pasar por alto: dos fallos más, uno crítico y uno alto, se han quedado fuera y llegarán en una versión posterior.
Qué corrige esta versión
- Falsificación de peticiones en la optimización de imágenes (alta). Una URL remota de las permitidas, si la controla un atacante, puede hacer que tu servidor haga peticiones hacia direcciones internas. Solo afecta si tienes configurado
images.remotePatterns. - Envenenamiento de caché en páginas SSG e ISR (dos fallos, medios). Una petición preparada puede hacer que una página guardada en caché sirva el contenido de otra ruta a todos los visitantes hasta que se regenere. Uno de ellos afecta a las aplicaciones autoalojadas con Pages Router; el otro, a las que combinan una página comodín en la raíz con rutas estáticas o ISR.
- Contenido de borrador que se filtra (medio). Con Cache Components y
use cacheactivados, una visita normal que coincide con la vista previa de un editor en Draft Mode puede recibir contenido sin publicar, e incluso dejarlo guardado en la página generada. - Otra fuga de caché con
use cacheanidado (media), que puede servir a un valor de parámetro lo generado para otro. - Imágenes de metadatos (media). En aplicaciones compiladas con webpack, rutas como
opengraph-imageno respetandynamicParams. Con Turbopack no ocurre. - El servidor de desarrollo (baja).
next devexpone un punto de acceso MCP que una web maliciosa visitada por el programador puede leer. No afecta a producción.
Lo que todavía falta
El 23 de septiembre, Next.js anunció esta actualización con nueve fallos. El 30 rectificó el aviso: la versión corrige siete, y los otros dos, uno crítico y uno alto, quedan pendientes de coordinación con una dependencia externa. Al cerrar esta noticia no hay versión posterior a la 16.3.8 ni a la 15.5.27, ni detalle público de esos dos fallos. Actualiza ahora a lo que hay y estate pendiente de la siguiente.
Qué hacer
- Mira tu versión con
npx next --versiondentro del proyecto, o en la dependencianextdelpackage.json. - Actualiza según tu rama:
npm install next@16.3.8si estás en la 16, onpm install next@15.5.27si estás en la 15. - Vuelve a compilar con
npm run build. Cambiar la dependencia sin recompilar deja en marcha el código antiguo. - Reinicia la aplicación. En tu hosting, desde el apartado Node.js del panel; en un VPS, con tu gestor de procesos o reconstruyendo el contenedor.
Ten la copia de seguridad hecha antes de empezar. Si no manejas npm a menudo, aquí tienes lo básico: Cómo usar npm y cambiar la versión de Node.js. Si tu aplicación corre en el hosting, el despliegue completo está en Cómo desplegar Next.js con SSR en tu hosting; si la tienes en contenedores, en Docker y Docker Compose en tu VPS.
Cada pocos días
Es la segunda versión de seguridad de Next.js en ocho días, y no será la última: faltan esos dos fallos. Si mantienes una aplicación en producción, revisar las versiones de Next.js ya no es una tarea de una vez al trimestre. Si la administras tú en un servidor VPS, ten claro quién aplica estos cambios y cuándo: Cómo gestiono mi servidor VPS.
Fuentes: Actualización de seguridad de septiembre de Next.js · Aviso previo y su rectificación