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
Tools/GitHubGitHub/far00t01/cve-2026-59941
Payload-GenerierungSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & Bildung
GitHubfar00t01/cve-2026-59941

CVE-2026-59941

Dompdf: Denial of Service (DoS) durch Ressourcenerschöpfung mittels übergroßer Bild-Bitmaps

Repository anzeigen
46vor 2 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-59942: Dompdf-Ressourcenerschöpfung-DoS – Proof of Concept

  • Schwachstellentyp: Denial of Service (DoS) durch Ressourcenerschöpfung
  • Betroffene Software: Dompdf <= 3.1.5
  • Credits: Fabian Rosales (far00t01).

Haftungsausschluss

Dieses Repository und seine Inhalte werden ausschließlich zu Bildungs- und Forschungszwecken bereitgestellt. Der Autor ist nicht verantwortlich für jeglichen Missbrauch, Schaden oder illegale Aktivitäten, die mit den hier bereitgestellten Informationen durchgeführt werden. Holen Sie stets eine Genehmigung ein, bevor Sie Zielumgebungen testen.

Zusammenfassung

Dompdf v3.1.5 ist anfällig für einen Denial-of-Service-Angriff (DoS) durch Ressourcenerschöpfung. Ein Angreifer kann den PHP-Prozess zum Absturz bringen, indem er ein speziell präpariertes HTML-Dokument bereitstellt, das ein einzelnes Bild mit massiven Abmessungen enthält (z. B. 30.000 x 30.000 Pixel).

Obwohl Dompdf interne Prüfungen zur Validierung der Bildabmessungen implementiert, können diese umgangen werden, indem ein Bild mit hoher Entropie (wie etwa Zufallsrauschen) verwendet wird, das in Base64 kodiert und in spezifische CSS-Container eingebettet ist.

Technische Detailanalyse:

Standardbilder mit einfarbigen Flächen können häufig durch Komprimierungsalgorithmen oder Rendering-Engines optimiert werden. Ein Rauschbild mit hoher Entropie zwingt die PHP-Engine jedoch, jedes der 900 Millionen Pixel einzeln zu verarbeiten. Wenn render() aufgerufen wird, versucht die Engine, die unkomprimierte Bitmap im Speicher zu verarbeiten und das Layout für jeden Pixeldatenpunkt mit hoher Varianz zu berechnen. Dies führt zu:

  • 100 % CPU-Auslastung: Der Rendering-Thread hängt unbegrenzt, während er versucht, den Pixelstrom zu verarbeiten.
  • Prozessbeendigung: Die massive Speicherzuweisung (verifiziert bei ~1,2 GB für ein einzelnes Bild) löst einen Fatal Error oder ein SIGKILL auf Betriebssystemebene (OOM) aus, was zu einem sofortigen Denial of Service führt.

Details

Die Schwachstelle besteht, weil die Dimensionsvalidierung frühzeitig erfolgt, aber die Ressourcenzuweisung für die Berechnung der Bounding-Box des Objekts und der internen Puffer während der Rendering-Phase die kumulative CPU-Zeit oder den Speicherverbrauch für ein einzelnes Objekt, das die anfängliche Prüfung bestanden hat, nicht strikt begrenzt.

Proof-of-Concept-Ergebnisse

https://github.com/user-attachments/assets/d1f5a07b-a7c5-4b5e-84b5-1e47e73522d9

  1. Installieren Sie Dompdf v3.1.5 über Composer.
composer require dompdf/dompdf:3.1.5
  1. Verwenden Sie das folgende Python-Skript, um die schädliche Nutzlast zu erzeugen (exploit.py):
  2. Verwenden Sie das folgende Python-Skript, um die Systemressourcen in einem separaten Terminal zu überwachen (monitor.py):
  3. Erstellen Sie eine Datei namens render.php. Dieses Skript fungiert als der verwundbare Einstiegspunkt und bildet eine Standardimplementierung der Dompdf-Bibliothek nach:
  4. Führen Sie den PHP-Prozess aus und übergeben Sie die Nutzlast über stdin. Wir verwenden ein Speicherlimit von 2 GB, um zu zeigen, dass der Absturz durch unkontrollierte Speicherzuweisung verursacht wird und nicht durch eine restriktive Serverkonfiguration:
php -d memory_limit=2G render.php < payload.html
  1. Die Engine versucht, jeden Pixel des High-Entropy-Bildes zu verarbeiten. Das Skript monitor.py zeichnet eine CPU-Auslastung von 99,8 % auf, gefolgt von einem PHP Fatal Error (Allowed memory size exhausted), da Dompdf versucht, etwa 1,2 GB in einer einzigen Operation zu allokieren. Der Prozess wird dann beendet, was den Denial of Service bestätigt.

Die folgenden Logs demonstrieren die erfolgreiche Ausnutzung der Ressourcenerschöpfungs-Schwachstelle. Trotz eines großzügigen Speicherlimits von 2 GB, das dem PHP-Prozess zur Verfügung gestellt wird, verursacht ein einzelnes High-Entropy-Bild einen fatalen Absturz.

Payload-Generierung:

python3 exploit.py 
[*] Generating 30000x30000 High-Entropy Noise Bomb...
[+] High-entropy payload saved to: payload.html

Zielausführung & Denial of Service:

php -d memory_limit=2G render.php < payload.html
Output
[*] Starting Dompdf rendering process...
PHP Fatal error:  Allowed memory size of 2147483648 bytes exhausted (tried to allocate 1200355712 bytes) in /home/far00t/dompdf_exploit/vendor/dompdf/dompdf/src/Dompdf.php on line 490

Während der Ausführung des render.php-Prozesses erfasste das Skript monitor.py die folgende Telemetrie, die die Auswirkungen auf die Systemressourcen zeigt:

python3 monitor.py 
[*] Searching for PHP processes... (Press Ctrl+C to stop)
[MONITOR] PID: 210767 | RAM: 953.17 MB | CPU: 99.7%

Zentrale Erkenntnisse aus der Telemetrie:

  • CPU-Aushungerung: Der Prozess erreichte eine anhaltende CPU-Auslastung von 99,7 %. In einer Produktionsumgebung verweigert diese Sättigungsstufe bei einem Single-Threaded-PHP-Prozess effektiv den Dienst für jede andere Aufgabe auf diesem Kern.
  • Rasche Speicherinflation: Der residente Speicher (RSS) stieg auf 953,17 MB, kurz bevor die Engine die letzte Allokation von 1,2 GB versuchte, die den Fatal error auslöste.
  • Bestätigung der Umgehung: Die Telemetrie belegt, dass Dompdfs interne „sichere" Limits umgangen wurden, da die Engine mit einer massiven Bitmap-Dekompression fortfuhr, die die Hostumgebung nicht bewältigen konnte.

Auswirkung

Ein nicht authentifizierter Remote-Angreifer kann einen vollständigen Denial of Service auf dem Webserver verursachen, indem er eine manipulierte HTML-Zeichenkette übermittelt. Dies betrifft jede Anwendung, die es Benutzern ermöglicht, HTML-Inhalte oder URLs bereitzustellen, die anschließend mit Dompdf in PDF konvertiert werden.

Referenz

  • https://github.com/dompdf/dompdf/security/advisories/GHSA-f5gf-2cj8-52g2
  • https://www.cve.org/CVERecord?id=CVE-2026-59942
Tool herunterladen