Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
VectorFreed — Documenta la cadena de RCE por use-after-free de VectorFreed en librsvg (CVE-2026-96889) con un PoC de generador de SVG y guía de remediación para librsvg, Next.js y Satori. | Kitploit
Herramientas/GitHubGitHub/rafabd1/vectorfreed
Forensia de MemoriaAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebRecopilación de InformaciónPapers e InvestigaciónExplotación de Binarios
GitHubrafabd1/vectorfreed

VectorFreed

Documenta la cadena de RCE por use-after-free de VectorFreed en librsvg (CVE-2026-96889) con un PoC de generador de SVG y guía de remediación para librsvg, Next.js y Satori.

Ver Repositorio
82hace 12h 50mAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

VectorFreed

Resumen

Este documento presenta "VectorFreed", una cadena de vulnerabilidades que comienza con un use-after-free que yo (@rafabd1) encontré en librsvg (CVE-2026-96889). En una compilación de Node.js/Sharp/libvips, este fallo condujo a la ejecución de comandos. Cubre el fallo, las rutas confirmadas en aplicaciones hasta ahora y las correcciones disponibles actualmente.

Detalles

Un SVG puede incluir otro SVG mediante XInclude. En la ruta vulnerable, librsvg comienza a analizar un documento incluido mientras libxml2 todavía está expandiendo una entidad en el documento externo. Si el SVG incluido declara una entidad con el mismo nombre, librsvg reemplaza y libera la primera entidad. libxml2 todavía mantiene un puntero a ella.

Cuando finaliza el análisis del documento incluido, libxml2 continúa con ese puntero antiguo. Para entonces, la memoria puede pertenecer ya a otra cosa, por lo que escrituras posteriores pueden corromperla. Un crash es un resultado. En otros casos, esto también condujo a la ejecución de comandos.

Dónde aparece

El atacante necesita marcado SVG manipulado para llegar a librsvg. Eso puede ocurrir cuando una aplicación acepta un archivo SVG, pero también puede ocurrir cuando la aplicación construye un SVG a partir de la entrada del usuario. El mero uso de librsvg en algún lugar del árbol de dependencias no establece una ruta explotable; la entrada tiene que llegar a una compilación afectada cuando se renderiza la imagen.

La ruta de Next.js que probamos aceptaba texto en lugar de una carga de SVG. Colocaba ese texto dentro de un SVG en línea para la versión de Node.js de ImageResponse. Un fallo de escape independiente en Satori permitía que el texto modificara el marcado SVG generado. Sharp/libvips luego pasaba ese SVG a librsvg. Vercel registró la ruta de Next.js como CVE-2026-94545. La versión Edge de ImageResponse no se ve afectada por esta ruta. Aquí hay una breve reproducción en Next.js.

Alcance

Durante esta investigación, identifiqué rutas de entrada afectadas en múltiples productos posteriores y confirmé la ejecución de comandos en varios de ellos, incluido el caso de Next.js descrito anteriormente. Cómo llega esa entrada a librsvg varía de un producto a otro. Por eso un fallo en un analizador de imágenes upstream puede aparecer en lugares que no parecen relacionados a primera vista; el reciente caso de libheif es otro ejemplo. No significa que todos los productos que usan librsvg sean explotables de forma remota.

Qué actualizar

  • librsvg: 2.63.2 tiene la corrección, con un backport en 2.62.4. Si usas una compilación de proveedor más antigua, comprueba si incluye la corrección. Consulta el aviso de librsvg.
  • Next.js: Las versiones 16.2.0 a 16.3.5 se ven afectadas cuando una aplicación coloca valores controlados por el atacante en contenido, atributos o estilos SVG en la ruta de ImageResponse de Node.js. Actualiza a 16.3.6.
  • Satori: Si lo usas directamente, 0.33.5 corrige el fallo de escape independiente utilizado en la ruta de Next.js.

Si usas los binarios precompilados de Sharp, comprueba el paquete @img/sharp-libvips-* que instaló tu aplicación. Incluye libvips y sus dependencias, incluido librsvg. Actualizar la copia del sistema de librsvg puede dejar tu aplicación usando la antigua.

PoCs y lo que viene después

El PoC de UAF incluye un generador de SVG para varias rutas de entrada y puede usarse para comprobar el use-after-free al inicio de la cadena.

Hasta ahora, no he encontrado un exploit público que lleve esta cadena desde el SVG manipulado hasta la ejecución de comandos. Sin embargo, el fallo y los parches ya son públicos y, con las herramientas de IA actuales, es bastante fácil reconstruir la cadena completa a partir de ellos. Dado esto, trata el exploit como si ya fuera público y actualiza las dependencias afectadas o mitiga la ruta de entrada lo antes posible.

[!WARNING] No existe un PoC universal de RCE para esta cadena; el payload debe ajustarse para cada objetivo. La mayoría de los "PoCs" públicos que he visto hasta ahora no reproducen la cadena de RCE real. Algunos se basan en <foreignObject> de SVG para la ejecución alegada, que no es la ruta de exploit descrita aquí.

Para la validación inicial, el PoC de UAF es más práctico. Planeo publicar un PoC de RCE para el caso de Next.js (CVE-2026-94545) en un repositorio separado. También publicaré el análisis técnico en las próximas semanas, con los pasos desde el UAF hasta la ejecución de comandos y un post-mortem que cubre este último mes de investigación sobre la cadena.

Referencias

  • Problema y corrección de librsvg
  • Aviso RustSec de librsvg
  • Actualización de seguridad de Next.js y aviso de Next.js
  • Aviso de Satori
  • Publicación de reproducción en Next.js
Descargar herramienta