Seguridad y privacidad

Next.js parchea vulnerabilidades críticas de RCE en caché y manejo de SVG

Next.js 16.4.1 y 15.5.28 corrigen dos vulnerabilidades críticas de ejecución remota de código (RCE) y una falla de denegación de servicio que afectan a los componentes del servidor y al procesamiento de imágenes.

Ilustración de un servidor protegido por un escudo agrietado contra ataques digitales
Ilustración generada para este artículo

Traducido automáticamente del original en inglés.

Vercel lanzó una actualización de seguridad urgente fuera de calendario para Next.js el 14 de octubre, abordando dos vulnerabilidades críticas de ejecución remota de código (RCE) y una falla de denegación de servicio (DoS) de alta severidad. Los parches están disponibles en las versiones de Next.js 16.4.1 y 15.5.28, dirigidas a aplicaciones que utilizan React Server Components, procesamiento de imágenes SVG o Server Actions. Aunque no se han reportado exploits activos hasta la fecha, la gravedad de estos problemas exige atención inmediata por parte de los equipos de desarrollo.

Qué sucedió

La actualización resuelve tres problemas de seguridad distintos que exponen las aplicaciones de Next.js a ataques sin autenticación. Vercel asignó una puntuación CVSS de 9.5 a ambas fallas de RCE, lo que indica que son críticas y fácilmente explotables bajo condiciones específicas. La primera vulnerabilidad existe dentro de React Server Components, afectando específicamente a las aplicaciones que usan la función use cache. La segunda implica un bug de corrupción de memoria en librsvg, una biblioteca de código abierto utilizada por el paquete sharp para el renderizado de SVG. El tercer problema es una vulnerabilidad DoS vinculada a Server Actions, que permite a los atacantes agotar los recursos de CPU del servidor con solicitudes manipuladas.

Estas fallas afectan a una amplia gama de versiones de Next.js. La RCE vía use cache impacta a Next.js desde la versión 16.0.0 hasta la 16.4.0. La RCE relacionada con SVG afecta a las versiones desde la 10.0.0 hasta la 15.5.27 y desde la 16.0.0 hasta la 16.4.0. La falla DoS abarca las versiones desde la 13.0.0 hasta la 15.5.27 y desde la 16.0.0 hasta la 16.4.0. Vercel recomienda que todos los usuarios actualicen a las últimas versiones de parche, incluso si creen que su configuración específica no es vulnerable, para garantizar una protección integral.

La exposición varía según el entorno de alojamiento y la configuración de la aplicación. Por ejemplo, Netlify declaró que su plataforma no ejecuta la ruta de código del optimizador de imágenes, limitando el impacto de la falla de SVG en su infraestructura. Sin embargo, aún recomiendan actualizar. Las aplicaciones que se ejecutan en sistemas Linux basados en glibc están particularmente en riesgo ante la vulnerabilidad de SVG, ya que el bug subyacente de memoria en librsvg puede ser activado remotamente al procesar archivos proporcionados por el atacante.

Cómo funciona

La falla de React Server Components se activa en casos raros donde una función use cache devuelve más de una matriz tipificada que contiene un valor controlado por el atacante. Este problema reside en los paquetes react-server-dom-webpack, react-server-dom-parcel y react-server-dom-turbopack. Cuando se cumplen estas condiciones, el servidor puede ejecutar código arbitrario proporcionado por el atacante. Aunque Vercel describe el escenario como extremadamente raro, el potencial impacto es lo suficientemente grave como para justificar una recomendación universal de actualización para los usuarios de Next.js 16.

La vulnerabilidad de SVG proviene de un bug de memoria en librsvg, identificado como CVE-2026-96889. Next.js accede a esta biblioteca a través del paquete de procesamiento de imágenes sharp. De forma predeterminada, Next.js no optimiza los SVG, pero habilitar la configuración dangerouslyAllowSVG o usar la función next/og para imágenes de vista previa social expone la aplicación a este riesgo. Cuando se procesa un SVG malicioso en un sistema Linux basado en glibc, la corrupción de memoria puede llevar a la ejecución remota de código. Esta es la tercera RCE relacionada con el procesamiento de imágenes en Next.js desde agosto, destacando los riesgos inherentes a las dependencias nativas complejas.

La vulnerabilidad DoS afecta a las aplicaciones de App Router que definen al menos una Server Action. Los atacantes pueden enviar solicitudes especialmente manipuladas que fuerzan a un único proceso del servidor a consumir el 100% de su capacidad de CPU, impidiéndole manejar otras solicitudes legítimas. Esto efectivamente deja la aplicación sin servicio para los usuarios que dependen de ese proceso específico. Las aplicaciones de Pages Router y aquellas sin Server Actions no se ven afectadas por esta falla en particular.

Detalles clave

  • Versiones corregidas: Next.js 16.4.1 y 15.5.28 resuelven los tres problemas.
  • Dependencia Sharp: La versión 16.4.1 requiere automáticamente sharp 0.35.5, que contiene el librsvg parcheado. La versión 15.5.28 aún puede permitir versiones anteriores y vulnerables de sharp, lo que requiere verificación manual.
  • Especificidad de Linux: La RCE de SVG es explotable principalmente en sistemas Linux basados en glibc donde Next.js procesa SVGs mediante sharp.
  • Sin CVE para algunas fallas: A partir del 15 de octubre, los avisos sobre use cache y Server Actions no tenían CVEs asignados y no eran visibles en los feeds estándar de auditoría de npm.
  • Soluciones alternativas: No existen soluciones alternativas para las fallas de use cache y Server Actions. Para el problema de SVG, los usuarios pueden bloquear el renderizado de SVG en sharp si no pueden actualizar inmediatamente.
  • Incidentes previos: Esto sigue a fallas similares de RCE en agosto (libheif) y septiembre (next/og), indicando un patrón de vulnerabilidades en las dependencias de procesamiento de imágenes.

Por qué importa

Para los equipos de ingeniería, esta actualización subraya la fragilidad de la seguridad de la cadena de suministro en los frameworks web modernos. La recurrencia de fallas de RCE en bibliotecas de procesamiento de imágenes como sharp y sus dependencias sugiere que la integración de código nativo sigue siendo un área de alto riesgo. Los desarrolladores a menudo asumen que las abstracciones de framework de alto nivel los protegen de errores de memoria de bajo nivel, pero este incidente demuestra que las dependencias profundas pueden introducir vulnerabilidades críticas difíciles de detectar sin herramientas de escaneo especializadas.

La falta de CVEs para dos de las tres fallas también destaca una brecha en la monitorización automatizada de seguridad. Muchos equipos confían en npm audit o herramientas similares para marcar dependencias vulnerables. Dado que estos avisos específicos no se poblaron inmediatamente en los feeds estándar, las organizaciones que dependen exclusivamente de escáneres automatizados podrían haber pasado por alto la urgencia de las correcciones de use cache y Server Actions. Esto hace necesario un enfoque más proactivo para monitorear los canales oficiales del framework y los boletines de seguridad, en lugar de depender exclusivamente de herramientas automatizadas.

Qué puedes hacer

  • Actualiza inmediatamente a Next.js 16.4.1 o 15.5.28 y reconstruye tu aplicación.
  • Si usas Next.js 15, verifica manualmente que sharp esté actualizado a la versión 0.35.5 o posterior usando npm ls sharp.
  • Comprueba si tu aplicación usa dangerouslyAllowSVG o next/og y considera deshabilitar estas funciones si no son esenciales.
  • Monitorea el uso de CPU del servidor para picos inusuales que puedan indicar la explotación de la falla DoS de Server Actions.
  • Revisa tu pipeline de escaneo de dependencias para asegurarte de que capture avisos que quizás aún no tengan CVEs asignados.
  • Si una actualización inmediata no es posible, bloquea las operaciones de SVG en sharp usando sharp.block({ operation: ["VipsForeignLoadSvg"] }) como mitigación temporal para la falla de imagen.

Herramientas de la Tienda de Bytechap

Seguir leyendo

Todos los artículos