
@ DeepSeek (2026)
Dos RCE críticas en Next.js que tu npm audit todavía no ve
El 14 de octubre de 2026, Vercel publicó tres avisos de seguridad de Next.js: dos de ejecución remota de código (RCE) valorados como críticos (CVSS 4.0 de 9,5) y uno de denegación de servicio valorado como alto (8,2). Ninguno requiere autenticación: basta con poder enviar una petición a la aplicación y que se cumpla la condición de cada aviso.
Lo inquietante no es el CVSS. Es que dos días después de publicarse, ninguno de los tres estaba en la base de datos global de avisos de GitHub, que es justo lo que leen npm audit, Dependabot y los escáneres basados en OSV. Un proyecto con una versión vulnerable podía recibir un informe limpio de todos ellos mientras el agujero seguía abierto.
Las tres advertencias
| Aviso | Severidad | Condición | Corregido en |
|---|---|---|---|
| GHSA-2464-fhr4-w9xw (CVE-2026-96889) | Crítica, 9,5 | Un SVG a través de la optimización de imágenes, en Linux con glibc | 15.5.28, 16.4.1 |
| GHSA-673q-mjm6-r5xr | Crítica, 9,5 | Una función use cache que devuelve arrays tipados | 16.4.1 |
| GHSA-p3m5-59mp-jv5r | Alta, 8,2 | Al menos una Server Action | 15.5.28, 16.4.1 |
La línea 16 tiene ya la 16.4.2, que lleva los mismos arreglos.
La RCE del SVG: el fallo no está en Next.js
El primero es el más interesante porque el error real vive una capa más abajo. CVE-2026-96889 lo publicó Red Hat el 23 de septiembre y describe un use-after-free en librsvg, el renderizador de SVG, que se dispara con un documento SVG en el que inclusiones XML anidadas declaran la misma entidad dos veces. Next.js llega a librsvg por esta cadena: sharp → libvips → librsvg.
- Afecta de la 10.0.0 a la 15.5.27 y, en la línea 16, hasta la 16.4.0.
- De ahí el workaround que da Vercel: comprueba que el
sharpque usa tu Next.js sea 0.35.5 o superior (el libvips que trae incluye librsvg 2.63.2, frente a 2.62.91 de la build anterior). - Una instalación nueva se lleva el
sharpcorregido sola. El caso peligroso es el que parece más seguro: un lockfile antiguo instalado connpm ci, que mantiene elsharpque tenga registrado. - Las imágenes basadas en Debian y Ubuntu (por ejemplo
node:22-slim) usan glibc; las de Alpine usan musl y quedan fuera del camino de ejecución de código según el aviso. Actualiza igual, porque el mismo release arregla los otros dos.
use cache devolviendo arrays tipados
El segundo afecta al App Router con Cache Components: una aplicación es vulnerable si tiene una función use cache que devuelve varios arrays tipados (Uint8Array, Float32Array, …). El rango empieza en la 16.0.0, así que la línea 15 no entra. Pocas aplicaciones tendrán una función así, y no hay workaround: la única salida es actualizar.
Server Actions que se pueden convertir en un horno de CPU
El tercero es el alto y, en la práctica, el que más aplicaciones tocan. Peticiones preparadas contra una aplicación App Router con al menos una Server Action pueden subir la CPU hasta que el proceso deja de atender nada más. Cualquier formulario que apunte a una función action cuenta, y también cualquier fichero que empiece por 'use server'. El Pages Router y el App Router sin Server Actions no están afectados.
El rango empieza en la 13.0.0, y el aviso solo lista 15.5.28 y 16.4.1: quien siga en 13 o 14 tiene que moverse a 15.5.28 o superior. Tampoco hay workaround.
Por qué tu escáner dice que estás limpio
GitHub guarda dos tipos de aviso. El repository advisory lo publican los mantenedores en su propio repositorio (estos tres, en vercel/next.js), y llega a la base de datos global —la que revisa el equipo de GitHub— solo cuando pasa esa revisión.
npm audit se alimenta del registro de npm, que sirve la base de datos global ya revisada; Dependabot alerta también desde avisos revisados, y OSV.dev importa ese mismo conjunto. Mientras no hay revisión, las herramientas no tienen nada que contar. El artículo original lo comprobó el 16 de octubre: los tres IDs devolvían «not found» en la base global y en OSV.dev, y un npm audit sobre un lockfile fijado a Next.js 16.3.8 no listaba ningún aviso de Next.js.
Ese hueco —aviso publicado por el mantenedor, revisión pendiente— es exactamente donde el tiempo corre en tu contra: el exploit ya está descrito y tu panel sigue en verde.
Lo que hace AiSecBox: runtime security sobre tus dependencias
La capa de runtime security de AiSecBox monitoriza automáticamente las dependencias de todos tus repositorios y te avisa en cuanto aparece una vulnerabilidad conocida que te afecte:
- Cruzamos varias fuentes, no una sola base de datos revisada: CVE, GitHub Security Advisories —incluidos los repository advisories que aún no han pasado la revisión global— y Open Source Vulnerabilities (OSV). Si el aviso existe en cualquiera de ellas, entra en la foto.
- Incluimos las dependencias transitivas. El caso de esta noticia es el ejemplo perfecto: tú no instalaste librsvg, lo instaló libvips, que vino con sharp, que usa Next.js para optimizar imágenes. Un escaneo que solo mira tu
package.jsonno ve nada de eso. - Avisamos cuando aparece algo nuevo, sin que tengas que lanzar un escaneo a mano ni esperar a que alguien lea la noticia. Cada aviso te dice qué proyecto, qué dependencia y qué versión corregida necesitas.
- Sin hojas de cálculo y para varios repos a la vez: el panel te dice de un vistazo en qué proyectos entra cada vulnerabilidad nueva, incluidos los que no recuerdas que existían.
Qué hacer ahora mismo
- Comprueba la versión real de cada aplicación en el lockfile o con
npm ls next, nunca en elpackage.json: un rango con^no dice qué quedó instalado. - Busca
use serveryuse cachepara saber cuáles de los tres avisos te aplican. - Ejecuta
npm ls sharpen todo lo que optimice imágenes. - Actualiza a 16.4.1 o superior (la línea 16 está en 16.4.2) o a 15.5.28 si sigues en la 15.
- Reconstruye la imagen sin capas cacheadas y despliega por el camino de siempre; un minor de Next.js puede cambiar comportamiento y merece el mismo recorrido que cualquier otro cambio.
- Confirma lo que quedó de verdad con
npm ls next sharp.
npm ls next sharp
📚 Fuente
Artículo original de Private DevOps (16/10/2026): Two Critical Next.js RCE Flaws and How to Patch Your App
Avisos de Vercel: GHSA-2464-fhr4-w9xw · GHSA-673q-mjm6-r5xr · GHSA-p3m5-59mp-jv5r · CVE-2026-96889 en CVE.org
📌 ¿Quieres dejar de enterarte de las RCE críticas por X y empezar a enterarte por tu panel? Prueba AiSecBox: monitorizamos las dependencias de todos tus repositorios, incluidas las transitivas, y te avisamos cuando aparece una vulnerabilidad nueva.

