Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
VectorFreed — Dokumentiert die VectorFreed-librsvg-Use-after-free-RCE-Kette (CVE-2026-96889) mit einem SVG-Generator-PoC und Behebungsempfehlungen für librsvg, Next.js und Satori. | Kitploit
Tools/GitHubGitHub/rafabd1/vectorfreed
SpeicherforensikSchwachstellenanalyseExploitationWebanwendungs-ExploitationInformationsbeschaffungPapers & ForschungBinary-Exploitation
GitHubrafabd1/vectorfreed

VectorFreed

Dokumentiert die VectorFreed-librsvg-Use-after-free-RCE-Kette (CVE-2026-96889) mit einem SVG-Generator-PoC und Behebungsempfehlungen für librsvg, Next.js und Satori.

Repository anzeigen
19190vor 1 TagNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

VectorFreed

Zusammenfassung

Dieses Dokument stellt „VectorFreed" vor, eine Schwachstellenkette, die mit einer Use-after-free-Schwachstelle beginnt, die ich (@rafabd1) in librsvg gefunden habe (CVE-2026-96889). In einem Node.js/Sharp/libvips-Build führte dieser Fehler zur Befehlsausführung. Es behandelt den Fehler, die bisher in Anwendungen bestätigten Pfade und die jetzt verfügbaren Korrekturen.

Details

Ein SVG kann über XInclude ein weiteres SVG einbinden. Im anfälligen Pfad beginnt librsvg mit dem Parsen eines eingebundenen Dokuments, während libxml2 noch eine Entität im äußeren Dokument expandiert. Wenn das eingebundene SVG eine Entität mit demselben Namen deklariert, ersetzt und gibt librsvg die erste Entität frei. libxml2 hält weiterhin einen Zeiger darauf.

Wenn das Parsen des eingebundenen Dokuments endet, fährt libxml2 mit diesem alten Zeiger fort. Der Speicher kann zu diesem Zeitpunkt bereits zu etwas anderem gehören, sodass spätere Schreibvorgänge ihn beschädigen können. Ein Absturz ist ein mögliches Ergebnis. In anderen Fällen führte dies ebenfalls zur Befehlsausführung.

Wo es auftritt

Der Angreifer benötigt präpariertes SVG-Markup, um librsvg zu erreichen. Das kann geschehen, wenn eine Anwendung eine SVG-Datei akzeptiert, aber es kann auch geschehen, wenn die Anwendung ein SVG aus Benutzereingaben erstellt. Die bloße Verwendung von librsvg irgendwo im Abhängigkeitsbaum begründet keinen ausnutzbaren Pfad; die Eingabe muss einen betroffenen Build erreichen, wenn das Bild gerendert wird.

Next.js

ImageResponse

Die von uns getestete Next.js-Route akzeptierte Text anstelle eines SVG-Uploads. Sie platzierte diesen Text in einem Inline-SVG für die Node.js-Version von ImageResponse. Ein separater Escaping-Fehler in Satori ermöglichte es dem Text, das generierte SVG-Markup zu verändern. Sharp/libvips übergab dieses SVG dann an librsvg. Vercel verfolgte den Next.js-Pfad als CVE-2026-94545. Die Edge-Version von ImageResponse ist von diesem Pfad nicht betroffen. Hier ist eine kurze Next.js-Reproduktion.

Image Optimization

Eine zweite Next.js-Route erreichte denselben librsvg-Fehler über die Image Optimization API. Wenn eine angreiferkontrollierte Bildquelle von der API akzeptiert wurde, konnte ein präpariertes Bild die SVG-Ablehnung des Frameworks umgehen und später von Sharp/libvips als SVG behandelt werden. Dies setzte die vorgelagerte Speicherbeschädigung unauthentifizierten Anfragen auf glibc-basiertem Linux aus, ohne Satori oder ImageResponse zu verwenden.

Vercel veröffentlichte diesen Pfad als GHSA-2464-fhr4-w9xw, unter der vorgelagerten CVE-2026-96889. Der Advisory bewertet ihn als Critical mit einem CVSS-Score von 9.5.

Ghost

Ghost hat einen anderen Pfad. Ein Mitarbeiterbenutzer, einschließlich eines Contributors, konnte eine Bookmark-Karte für eine von ihm kontrollierte Website erstellen. Die Verarbeitung des Kartenbilds konnte dann Befehle auf dem Ghost-Server ausführen. Ghost veröffentlichte dies als CVE-2026-105642.

Umfang

Während dieser Recherche identifizierte ich betroffene Eingabepfade in mehreren nachgelagerten Produkten und bestätigte die Befehlsausführung in mehreren davon, einschließlich beider Next.js-Routen und des obigen Ghost-Falls. Wie diese Eingabe librsvg erreicht, variiert von Produkt zu Produkt. Deshalb kann ein vorgelagerter Bildparser-Fehler an Stellen auftauchen, die auf den ersten Blick nicht zusammenhängen; der aktuelle libheif-Fall ist ein weiteres Beispiel. Das bedeutet nicht, dass jedes Produkt, das librsvg verwendet, aus der Ferne ausnutzbar ist.

Was zu aktualisieren ist

  • librsvg: 2.63.2 enthält den Fix, mit Backports in 2.62.4, 2.61.5, 2.60.3, 2.57.5 und 2.56.6. Wenn Sie einen älteren Vendor-Build verwenden, prüfen Sie, ob dieser den Fix enthält. Siehe die librsvg-Advisory.
  • Next.js (ImageResponse): Die Versionen 16.2.0 bis 16.3.5 sind betroffen, wenn eine Anwendung von Angreifern kontrollierte Werte in SVG-Inhalte, -Attribute oder -Styles einfügt. Aktualisieren Sie auf 16.3.6.
  • Next.js (Image Optimization): Die Advisory listet >= 10.0.0 <= 15.5.27 und > 16.0.0 <= 16.4.0 als betroffen auf. Aktualisieren Sie auf 15.5.28 oder 16.4.1. Sharp 0.35.5 oder später enthält den Upstream-Fix.
  • Ghost: Ghost listet die Versionen >= 6.56.0 und < 6.67.0 als betroffen auf. Aktualisieren Sie auf 6.67.0.
  • Satori: Wenn Sie es direkt verwenden, behebt 0.33.5 den separaten Escaping-Bug, der in der Next.js-Route genutzt wird.

Wenn Sie die vorgefertigten Binaries von Sharp verwenden, prüfen Sie das @img/sharp-libvips-*-Paket, das Ihre App installiert hat. Es bündelt libvips und dessen Abhängigkeiten, einschließlich librsvg. Eine Aktualisierung der Systemkopie von librsvg kann dazu führen, dass Ihre App weiterhin die alte Version verwendet.

PoCs und wie es weitergeht

Der UAF-PoC enthält einen SVG-Generator für mehrere Eingabepfade und kann verwendet werden, um den Use-after-free am Anfang der Kette zu überprüfen.

Der EQSTLab Next.js ImageResponse RCE-PoC ist ein funktionierendes Beispiel dieser Kette für seinen festgelegten Node.js/Sharp-Build. Er generiert und sendet die Payload automatisch. Ein funktionierender Exploit ist jetzt öffentlich, aktualisieren Sie also betroffene Abhängigkeiten oder entschärfen Sie den Eingabepfad so schnell wie möglich.

[!WARNING] Es gibt keinen universellen RCE-PoC für diese Kette. Das EQSTLab-Beispiel zielt auf seinen festgelegten Build ab; andere Ziele benötigen möglicherweise andere Payloads. PoCs, die auf SVG <foreignObject> für die Befehlsausführung setzen, demonstrieren nicht die hier beschriebene Kette.

Für die erste Validierung auf anderen Zielen ist der UAF-PoC praktischer. Ich werde in den kommenden Wochen außerdem den technischen Write-up veröffentlichen, mit den Schritten vom UAF bis zur Befehlsausführung und einer Post-Mortem-Analyse, die diesen vergangenen Monat der Forschung an der Kette abdeckt.

Referenzen

  • librsvg Issue und Fix
  • librsvg RustSec-Advisory
  • Next.js ImageResponse Sicherheitsupdate und Advisory
  • Next.js Image Optimization Advisory
  • Ghost Advisory
  • Satori Advisory
  • Next.js Reproduktions-Post
Tool herunterladen