Next.js publicó el 25 de agosto de 2026 una actualización que corrige dos vulnerabilidades críticas capaces de provocar ejecución remota de código (RCE). Las versiones seguras son Next.js 16.3.3, rama Active LTS, y 15.5.24, rama Maintenance LTS. Si tu aplicación se ejecuta sobre Windows o procesa imágenes AVIF mediante el optimizador integrado, la actualización debe tratarse como urgente.
Respuesta rápida: si ya usas Next.js 16, actualiza a 16.3.3; si necesitas permanecer en la rama 15, instala 15.5.24. No basta con modificar package.json: debes actualizar el archivo de bloqueo, reconstruir la aplicación, desplegar un artefacto nuevo y confirmar la versión que realmente está ejecutándose en producción.
¿Qué cambió en Next.js 16.3.3 y 15.5.24?
Estas versiones son principalmente parches de seguridad. No son una nueva versión mayor. Corrigen dos fallas críticas divulgadas en el aviso oficial de agosto de Next.js:
| Vulnerabilidad | Condición principal | Versiones afectadas | Corrección |
|---|---|---|---|
| CVE-2026-75604 / GHSA-p293-qw3h-jr36 RCE en servidores Windows, CVSS 9.0 |
Pages Router o App Router sin Cache Components, ejecutados sobre un sistema de archivos Windows. | ≥13.4 y <15.5.24; ≥16.0 y <16.3.3 | 15.5.24 o 16.3.3 |
| GHSA-2xp9-vwfh-vxw4 RCE al optimizar AVIF, CVSS 9.5 |
Archivos AVIF procesados por la API de optimización de imágenes mediante Sharp y la biblioteca subyacente libheif. | Next.js desde 10.0.0 hasta versiones anteriores a 15.5.24; rama 16 anterior a 16.3.3 | 15.5.24 o 16.3.3; el parche deshabilita temporalmente la optimización AVIF |
Primera RCE: aplicaciones Next.js alojadas en Windows
La primera vulnerabilidad es un problema de recorrido de rutas que puede terminar en ejecución remota de código cuando la aplicación se sirve desde una máquina con sistema de archivos Windows. Afecta tanto a Pages Router como a App Router cuando no se utilizan Cache Components. No requiere autenticación ni interacción del usuario.
El aviso oficial es especialmente claro: no existe una mitigación conocida para una aplicación Windows afectada. Un WAF, una CDN o un proxy inverso no sustituyen el parche. Si process.platform devuelve win32 y la versión está dentro del rango vulnerable, debes actualizar inmediatamente.
Segunda RCE: optimización de imágenes AVIF
Next.js utiliza Sharp para transformar imágenes. Sharp, a su vez, depende de libheif para procesar AVIF. Una falla en esa cadena puede permitir ejecución de código cuando el optimizador recibe un AVIF especialmente preparado. El riesgo importa sobre todo cuando una aplicación optimiza imágenes remotas o contenido proporcionado por terceros.
En las versiones corregidas, la optimización AVIF queda deshabilitada mientras la solución de la dependencia se propaga. Por eso podrías observar que una solicitud que antes negociaba AVIF pasa a utilizar otro formato. Esa diferencia es una medida de seguridad intencional, no necesariamente un error de tu configuración.
¿Tu aplicación está expuesta? Lista de comprobación
- Confirma la versión instalada: no te fíes solamente del rango declarado en
package.json. - Comprueba el sistema operativo: la primera RCE se concentra en hosts Windows.
- Revisa el uso de AVIF: busca
image/avifdentro deimages.formatsy verifica si aceptas imágenes remotas o cargas de usuarios. - Inventaría todos los despliegues: staging actualizado no significa que producción, workers o réplicas también lo estén.
npm ls next sharp
node -p "require('next/package.json').version"
node -p "process.platform"El resultado win32 identifica Node.js sobre Windows. En Linux normalmente verás linux. Aunque uses Linux, la vulnerabilidad del optimizador AVIF puede seguir siendo relevante.
Cómo actualizar a Next.js 16.3.3 o 15.5.24
1. Crea una rama y conserva el estado anterior
Guarda el código, el archivo de bloqueo, las variables de entorno y cualquier dato persistente. En un VPS, un snapshot previo facilita la recuperación. La reversión debe llevarte a un artefacto funcional que ya incluya el parche; no conviene volver a una versión vulnerable.
2. Instala la versión exacta de tu rama
Para reducir cambios simultáneos, realiza primero una actualización puntual del paquete next:
# Active LTS: Next.js 16
npm install [email protected]
# Maintenance LTS: Next.js 15
npm install [email protected]Con otros administradores de paquetes:
pnpm add [email protected]
yarn add [email protected]
bun add [email protected]Despliega Next.js con control real del servidor
Ejecuta Node.js y Next.js en un VPS con acceso root, recursos dedicados, snapshots y libertad para aplicar parches cuando producción lo necesita.


Elige un solo comando y una sola rama. Si estás migrando desde Next.js 13, 14 o una versión antigua de 15, ya no es un simple parche: revisa la guía oficial de actualización a Next.js 16 y utiliza el codemod oficial en una rama separada.
3. Reconstruye y ejecuta pruebas
npm run build
npm test
npm ls next
node -p "require('next/package.json').version"Si el proyecto no define npm test, ejecuta las pruebas reales de tu repositorio. Verifica especialmente rutas de imágenes, cargas de usuarios, Server Actions, autenticación, caché, Middleware o Proxy y las páginas que se renderizan dinámicamente.
4. Despliega todas las réplicas
Una actualización local no protege el servidor. Genera un artefacto nuevo y reinicia cada instancia. Para Docker, evita reutilizar una capa antigua de node_modules:
docker build --pull --no-cache -t mi-app:next-16.3.3 .
docker compose up -d --force-recreateEn PM2, construye antes de recargar:
npm run build
pm2 reload ecosystem.config.js --update-env5. Verifica producción
- Confirma 16.3.3 o 15.5.24 dentro del contenedor o proceso en ejecución.
- Comprueba que el lockfile cambió y quedó versionado.
- Revisa errores 4xx/5xx, latencia, memoria y reinicios durante el despliegue.
- Prueba imágenes JPEG, PNG, WebP y AVIF; documenta el cambio temporal de AVIF.
- Elimina del balanceador cualquier réplica que conserve una imagen antigua.
¿Qué pasa si vienes de Next.js 16.2 o 15.5?
Si ya estás en 16.x, 16.3 también incorpora las mejoras generales anunciadas para esa rama: Instant Navigations, compilaciones y renderizado más rápidos y hasta un 90% menos de memoria durante el desarrollo en escenarios medidos por el equipo de Next.js. Sin embargo, no debes mezclar conceptos: 16.3.3 es el parche de seguridad; las funciones llegaron con 16.3.
Si permaneces en 15.5 por compatibilidad, 15.5.24 ofrece las correcciones críticas sin obligarte a adoptar inmediatamente los cambios mayores de Next.js 16. Esa puede ser la vía de menor riesgo operativo mientras preparas y pruebas la migración.
Errores que debes evitar
- Actualizar solo package.json: producción puede seguir usando la versión fijada en el lockfile o una imagen Docker anterior.
- Confiar únicamente en npm audit: una base de avisos puede tardar en reflejar una publicación reciente.
- Desactivar AVIF y posponer indefinidamente: la recomendación oficial sigue siendo instalar una versión corregida.
- Hacer rollback al paquete vulnerable: si aparece una regresión, utiliza 15.5.24 como rama de mantenimiento o corrige el despliegue sin perder el parche.
- Olvidar servidores Windows secundarios: paneles internos, entornos de staging y tareas programadas también cuentan.
Preguntas frecuentes
¿Next.js 16.3.2 es seguro?
No frente a estas dos vulnerabilidades. La versión corregida de la rama 16 es 16.3.3.
¿Puedo continuar con Next.js 15?
Sí. Next.js 15.5.24 es la versión Maintenance LTS corregida para este lanzamiento.
¿Linux está afectado?
La RCE de CVE-2026-75604 es específica de servidores con sistema de archivos Windows. La falla de AVIF no debe considerarse exclusiva de Windows; revisa cualquier despliegue que utilice el optimizador de imágenes.
¿Debo actualizar React al mismo tiempo?
No necesariamente para aplicar este parche puntual. Actualiza next, respeta las dependencias compatibles de tu proyecto y revisa la salida del administrador de paquetes. Una migración mayor sí puede requerir cambios adicionales.
¿Una CDN elimina el riesgo?
No. Puede limitar parte del tráfico, pero no corrige el código vulnerable ni garantiza que un archivo malicioso nunca llegue al optimizador.
Conclusión
Next.js 16.3.3 y 15.5.24 son actualizaciones prioritarias porque corrigen dos rutas distintas hacia ejecución remota de código. Identifica versiones, sistema operativo y uso de AVIF; actualiza la rama adecuada; reconstruye todos los artefactos y verifica la versión en producción. Si ya aplicaste la actualización de seguridad de Next.js de julio de 2026, este parche de agosto sigue siendo necesario.








