Next.js — Parches para Fallos Críticos de AVIF y Windows que Permiten RCE No Autenticado (CVE-2026-75604)
Fecha de publicación: 27 de agosto de 2026
Categoría: Vulnerabilidad / Seguridad Web
Introducción
Vercel ha emitido actualizaciones de seguridad de emergencia para el framework web Next.js con el fin de resolver dos vulnerabilidades de gravedad crítica que habilitan la ejecución remota de código (RCE) sin necesidad de autenticación. El primer vector afecta exclusivamente a servidores que operan sobre sistemas de archivos Windows mediante un fallo de traspaso de rutas (identificado como CVE-2026-75604), mientras que el segundo involucra un desbordamiento de búfer basado en montón dentro de la biblioteca subyacente libheif al procesar archivos de imagen AVIF manipulados. El hallazgo y la divulgación involucran a los investigadores evolutionstorm, B0RI, rootxharsh, KarimPwnz y el equipo Hacktron, obligando a Vercel a adelantar su ciclo mensual programado de parches.
¿Qué es Next.js y el Subconjunto de Procesamiento de Medios? (Análisis General)
Next.js es uno de los frameworks de desarrollo web basados en React más populares del ecosistema moderno, utilizado para desplegar aplicaciones empresariales a gran escala mediante renderizado del lado del servidor (SSR) y generación de sitios estáticos (SSG). Para optimizar el rendimiento visual, Next.js integra de manera nativa capacidades de optimización de imágenes utilizando el paquete sharp, el cual a su vez depende de la biblioteca escrita en C libheif para decodificar y manipular formatos HEIF y AVIF.
La criticidad de estos componentes radica en que operan directamente sobre entradas provistas de forma externa (archivos de imagen subidos o enlazados por usuarios). Cuando una aplicación expone puntos finales de procesamiento multimedia sin una validación rigurosa de límites, cualquier anomalía en bibliotecas de bajo nivel expone el proceso de Node.js a la corrupción de memoria.
A continuación se detallan las métricas técnicas estimadas para las vulnerabilidades tratadas:
CVE-2026-75604 (Path Traversal en Windows):
- Puntuación CVSS v3.1 estimada: 9.0 (Crítico)
- Vector CVSS estimado:
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H - Clasificación CWE estimada: CWE-22 (Improper Limitation of a Pathname to a Restricted Directory - Path Traversal)
- Naturaleza del dato: Estimación razonada (sin registro completo en NVD al momento del reporte).
Vulnerabilidad AVIF / libheif (GHSA-2xp9-vwfh-vxw4 / GHSA-g89c-p67h-r497):
- Puntuación CVSS v4.0 oficial reportada: 9.5 (Crítico)
- Vector CVSS estimado:
CVSS:4.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Clasificación CWE estimada: CWE-122 (Heap-based Buffer Overflow)
- Naturaleza del dato: Datos reportados en avisos de terceros y del fabricante; vector estimado de desbordamiento de memoria.
¿Cómo funciona? (Análisis Técnico)
El análisis del comportamiento de explotación revela dos vectores completamente distintos pero con un impacto final equivalente (RCE):
Flujo de Explotación del Fallo en Windows (CVE-2026-75604):
- Vector de entrada: Las aplicaciones Next.js configuradas que utilizan simultáneamente el Pages Router y el App Router (sin Cache Components) ejecutándose sobre sistemas de archivos Windows gestionan de forma deficiente las rutas normalizadas.
- Mecanismo de ejecución: Un atacante no autenticado envía peticiones HTTP manipuladas que incluyen secuencias de escape de directorios (ej.
..\..\), permitiendo el acceso o la manipulación de recursos fuera del directorio raíz web asignado. Dependiendo de la estructura de la aplicación y el contexto de ejecución, esto puede derivar en la inclusión o ejecución arbitraria de archivos locales (LFI/RCE). Las plataformas Linux y macOS no se ven afectadas debido a las diferencias en la semántica de las rutas del sistema operativo.
Flujo de Explotación del Desbordamiento en AVIF (
libheif):- Vector de entrada: El atacante suministra un archivo de imagen AVIF especialmente diseñado que incluye referencias auxiliares y derivaciones de identidad anidadas.
- Mecanismo de corrupción: El archivo malicioso fuerza a
libheifa construir una imagen decodificada que contiene simultáneamente dos entradas de plano Alfa con diferentes profundidades de bits (una de 8 bits y otra de 16 bits). - Sobrescritura de memoria: El componente de escalado de la biblioteca asigna un búfer de destino dimensionado estrictamente para la primera entrada (8 bits), pero procede a escribir los valores de muestra de 16 bits de la segunda entrada dentro de ese mismo espacio. Esto provoca un desbordamiento de búfer en el montón (heap-based buffer overflow), sobrescribiendo aproximadamente 16,384 bytes más allá de los límites de asignación, corrompiendo estructuras de control del montón y permitiendo la ejecución arbitraria de código en el proceso host.
Sistemas / Entornos Afectados
El impacto abarca múltiples ramas de versiones del ecosistema Next.js, condicionadas por el sistema operativo o configuraciones específicas:
| CVE / Identificador | Categoría (CWE) | Impacto | CVSS | Vector (resumido) |
|---|---|---|---|---|
| CVE-2026-75604 | CWE-22 (Path Traversal) | RCE no autenticado (Solo Windows) | 9.0 (Est.) | Red / Sin Privilegios / Complejidad Alta |
| GHSA-2xp9-vwfh-vxw4 | CWE-122 (Heap Overflow) | RCE no autenticado (Optimización AVIF) | 9.5 | Red / Sin Privilegios / Complejidad Baja |
- Versiones afectadas en el fallo de Windows: Next.js versiones 13.4 hasta 15.5.23 y versiones 16.0 hasta 16.3.2 (afectando únicamente a despliegues sobre Windows).
- Versiones afectadas en el fallo AVIF: Next.js versiones 10.0.0 hasta 15.5.23 y todas las versiones 16.x hasta 16.3.2, siempre que tengan explícitamente habilitado
image/avifen la configuración denext.config.js.
Mitigación y Detección
Remediación
- Actualización inmediata: Actualizar Next.js a las versiones correctivas 15.5.24 (Maintenance LTS) o 16.3.3 (Active LTS).
- Para la línea 15: ejecutar
npm install [email protected]. - Para la línea 16: ejecutar
npm install [email protected].
- Para la línea 15: ejecutar
- Mitigación para entornos Windows: Dado que no existe una solución alternativa (workaround) para aplicaciones albergadas en Windows, es imperativo aplicar el parche de software de inmediato.
- Desactivación temporal de AVIF: Las versiones corregidas desactivan por completo la optimización de AVIF hasta que la corrección upstream en
libheifse propague formalmente a la versión v1.23.2.
Detección
- Auditoría de dependencias: Monitorear los registros de compilación y las versiones de los paquetes Node.js instalados en busca de instalaciones vulnerables de Next.js y bibliotecas de procesamiento de imágenes obsoletas.
- Análisis de registros web: Revisar logs de acceso en busca de solicitudes HTTP anómalas que incluyan patrones de traspaso de ruta (
..\\o codificaciones URL equivalentes) dirigidas a servidores con entornos Windows.
Advertencia de Inteligencia de Amenazas: Las vulnerabilidades que combinan desbordamientos de memoria en bibliotecas de procesamiento gráfico con fallos lógicos en plataformas específicas de sistemas operativos incrementan significativamente la superficie de ataque para la ejecución de cargas maliciosas automatizadas mediante herramientas asistidas por IA.
Recapitulando
Las vulnerabilidades críticas descubiertas en Next.js y sus dependencias de procesamiento multimedia (libheif), junto con el fallo de traspaso de rutas en Windows, subrayan la fragilidad inherente a las cadenas de suministro de software moderno. La capacidad de lograr ejecución remota de código sin autenticación exige una respuesta rápida por parte de los equipos de ingeniería, priorizando la actualización de dependencias y el endurecimiento de los entornos operativos bajo Windows.
Referencias
- The Hacker News. (2026). Next.js Patches Critical AVIF and Windows Flaws Enabling Unauthenticated RCE. Recuperado de https://thehackernews.com/2026/08/nextjs-patches-critical-avif-and.html
- Vercel. (2026). Vercel Security Advisory (GHSA-p293-qw3h-jr36). GitHub. Recuperado de https://github.com/vercel/next.js/security/advisories/GHSA-p293-qw3h-jr36
- Vercel. (2026). Next.js August 2026 Security Release Changelog. Recuperado de https://vercel.com/changelog/nextjs-august-2026-security-release
- Vercel. (2026). GitHub Advisory GHSA-2xp9-vwfh-vxw4. GitHub. Recuperado de https://github.com/vercel/next.js/security/advisories/GHSA-2xp9-vwfh-vxw4
- Strukturag. (2026). GitHub Advisory GHSA-g89c-p67h-r497 (libheif). GitHub. Recuperado de https://github.com/strukturag/libheif/security/advisories/GHSA-g89c-p67h-r497
- Vercel. (2026). August 2026 Security Release Blog Post. Next.js Blog. Recuperado de https://nextjs.org/blog/august-2026-security-release
- Vercel. (2026). Next.js Security Release Program Announcement. Next.js Blog. Recuperado de https://nextjs.org/blog/next-security-release-program
- Vercel. (2026). July 2026 Security Release. Next.js Blog. Recuperado de https://nextjs.org/blog/july-2026-security-release
