Erfahren Sie mehr über Benny Czarnys Buch „Cybersecurity Upside Down“

Mehr erfahren
Wir verwenden künstliche Intelligenz für Website-Übersetzungen, und obwohl wir uns um Genauigkeit bemühen, kann es sein, dass sie nicht immer 100%ig präzise sind. Wir danken Ihnen für Ihr Verständnis.

Aufdecken und Beseitigen einer Sicherheitslücke in der Dompdf-Bibliothek mit OPSWAT MetaDefender Core

Von OPSWAT
Aufdecken und Beseitigen einer Sicherheitslücke in der Dompdf-Bibliothek mit OPSWAT MetaDefender Core
Studenten nahmen am OPSWAT Fellowship-Programm teil

Der rasante technologische Fortschritt hat zu einer hohen Nachfrage nach qualifizierten Entwicklern geführt. Open-Source-Software (OSS) ist für diese wachsende Fachkräftegruppe zu einem unverzichtbaren Werkzeug geworden. Mittlerweile gibt es Hunderttausende etablierter OSS-Pakete in verschiedenen Programmiersprachen. Über 90 % der Entwickler nutzen diese Open-Source-Komponenten in ihren proprietären Anwendungen, was die Effizienz und den Mehrwert von OSS unterstreicht. Die Bedeutung von OSS wird zusätzlich dadurch unterstrichen, dass der weltweite Markt für Open-Source-Software bis 2030 voraussichtlich ein Volumen von 80,7 Milliarden US-Dollar erreichen wird, was einer prognostizierten jährlichen Wachstumsrate von 16,7 % entspricht.

Software ist ein wesentlicher Bestandteil von Geschäftsabläufen auf der ganzen Welt und wird daher häufig von Bedrohungsakteuren ins Visier genommen. Im Jahr 2023 beliefen sich die Ausgaben für Anwendungssicherheit auf ca. 5,76 Mrd. US-Dollar, wobei für 2024 ein Wert von 6,67 Mrd. US-Dollar prognostiziert wird. Innerhalb von AppSec hat die Sicherheit der Software-Lieferkette in den letzten drei Jahren an Bedeutung gewonnen und stellt die am schnellsten wachsende Angriffskategorie dar, wobei große Sicherheitslücken und Exploits regelmäßig für Schlagzeilen sorgen.

Unternehmen gehen oft davon aus, dass die meisten Risiken von öffentlich zugänglichen Webanwendungen ausgehen. Diese Sichtweise hat sich jedoch in den letzten Jahren geändert. Da jede Anwendung aus Dutzenden von kleinen Komponenten besteht, können Risiken heute von jedem Punkt der Codebasis ausgehen. Für Unternehmen ist es wichtiger denn je, sich mit bestehenden und neu auftretenden Sicherheitslücken im Lebenszyklus der Softwareentwicklung vertraut zu machen. In diesem Blogbeitrag werfen unsere Graduate Fellows einen genaueren Blick auf CVE-2023-23924, eine kritische Sicherheitslücke, die in der weit verbreiteten dompdf-Bibliothek entdeckt wurde - einem leistungsstarken PHP-Tool, das die dynamische Erzeugung von PDF-Dokumenten aus HTML und CSS ermöglicht.

In einer umfassenden Analyse werden wir die technischen Feinheiten dieser Schwachstelle, die zugehörigen Technologien, die eine entscheidende Rolle spielen, und eine Simulation des Ausnutzungsprozesses untersuchen. Wir werden auch untersuchen, wie OPSWAT MetaDefender Core, insbesondere seine Software Bill of Materials (SBOM) Engine, kann genutzt werden, um diese Schwachstelle zu erkennen und zu entschärfen. So können Softwareentwickler und Sicherheitsteams potenziellen Bedrohungen einen Schritt voraus sein.

Hintergrund zu CVE-2023-23924

Eine Sicherheitslücke wurde in dompdf Version 2.0.1 entdeckt und Anfang 2023 veröffentlicht:

  • Die URI-Validierung von dompdf 2.0.1 kann beim SVG-Parsing umgangen werden, indem man <image> Tags mit Großbuchstaben. Dies erlaubt einem Angreifer, beliebige URLs mit beliebigen Protokollen aufzurufen, was in PHP-Versionen vor 8.0.0 zu einer beliebigen Objekt-Deserialisierung führt. Durch den PHAR-URL-Wrapper kann diese Verwundbarkeit, abhängig von den verfügbaren Klassen, eine beliebige Dateilöschung und sogar entfernte Codeausführung verursachen.
  • Die NVD-Analysten wiesen CVE-2023-23924 eine CVSS-Punktzahl von 9.8 CRITICAL zu.
Aufdecken und Beseitigen einer Sicherheitslücke in der Dompdf-Bibliothek mit OPSWAT MetaDefender Core

Die Dompdf-Schwachstelle verstehen

Um die Sicherheitslücke CVE-2023-23924 in dompdf vollständig zu verstehen, ist es wichtig, sich mit zwei eng verwandten Technologien vertraut zu machen: Skalierbare Vektorgrafiken (SVG) und PHAR-Dateien.

SVG (Skalierbare Vektorgrafik)

SVG (Scalable Vector Graphics, skalierbare Vektorgrafiken) ist ein vielseitiges Bildformat, das aufgrund seiner Fähigkeit, qualitativ hochwertige Grafiken im Web zu rendern und dabei leichtgewichtig und skalierbar zu bleiben, große Beliebtheit erlangt hat. Im Gegensatz zu Rasterbildern basieren SVGs auf XML-Markup und ermöglichen eine präzise Steuerung von Elementen wie Linien, Formen und Text. Einer der Hauptvorteile von SVGs ist, dass sie nahtlos skaliert werden können, ohne dass die Bildqualität darunter leidet, was sie ideal für responsives Webdesign und hochauflösende Displays macht.

Aufdecken und Beseitigen einer Sicherheitslücke in der Dompdf-Bibliothek mit OPSWAT MetaDefender Core

PHAR-Datei

PHAR (PHP Archive) ist analog zum JAR-Dateikonzept, jedoch für PHP. Es ermöglicht eine einfache Bereitstellung durch Bündelung des gesamten PHP-Codes und der Ressourcendatei in einer einzigen Archivdatei.

Eine PHAR-Datei besteht aus 4 Abschnitten:

  • Stubs: enthält den Code für das Bootstrapping des Archivs.
  • Manifest: enthält die Metadaten des Archivs. Die Metadaten werden in einem serialisierten Format gespeichert, das zum Auslösen eines deserialisierten PHP-Angriffs in einer bösartigen PHAR-Datei verwendet werden könnte.
  • Dateiinhalt: enthält den Inhalt des Archivs, einschließlich PHP-Code und Ressourcendateien.
  • Signatur (optional): enthält Daten zur Überprüfung der Integrität der Datei.

Da die Metadaten in einem serialisierten Format gespeichert sind, könnte die Kombination aus dem PHAR-Wrapper und den Metadaten der PHAR-Datei möglicherweise einen Deserialisierungsangriff auslösen, wenn sie als Eingabe in PHP-Funktionen wie file_get_contents(), fopen(), file(), file_exists(), md5_file(), filemtime(), oder Dateigröße(). Diese Sicherheitslücke könnte es Angreifern ermöglichen, über eine PHAR-Datei entfernten Code auszuführen.

Aufdecken und Beseitigen einer Sicherheitslücke in der Dompdf-Bibliothek mit OPSWAT MetaDefender Core

Wie Dompdf eine PDF-Datei generiert

Aufdecken und Beseitigen einer Sicherheitslücke in der Dompdf-Bibliothek mit OPSWAT MetaDefender Core

Bei der Analyse haben die OPSWAT Graduate Fellows festgestellt, dass der Konvertierungsprozess bei dompdf in drei Phasen abläuft. Um eine HTML-Datei in das PDF-Format zu konvertieren, zerlegt die dompdf-Bibliothek zunächst die Eingabedatei in einen DOM-Baum und speichert die Positionierungs- und Layout-Informationen der einzelnen Objekte. Anschließend wird das CSS-Styling analysiert und auf jedes Objekt angewendet. Zum Schluss werden die Objekte so umorganisiert, dass sie auf die Seite passen und in die endgültige PDF-Datei gerendert werden.

Sicherheitsschwachstelle in Dompdf

Um die Sicherheit zu erhöhen, implementiert dompdf eine Validierung, um die Sicherheit der URI-Eingaben zu gewährleisten, bevor mit dem nächsten Schritt fortgefahren wird. Dieser Validierungsprozess zeigt sich bei der Verarbeitung von SVG-Dateien innerhalb des Wertes von xlink:href Attribut.

Aufdecken und Beseitigen einer Sicherheitslücke in der Dompdf-Bibliothek mit OPSWAT MetaDefender Core

Enthält die SVG-Eingabedatei das <image> Tag unter dem <svg> Tag ist eine Bedingung implementiert, die nur bestimmte Protokolle zulässt, wie z. B. http://, https:// und file://für die xlink:href Feld.

Aufdecken und Beseitigen einer Sicherheitslücke in der Dompdf-Bibliothek mit OPSWAT MetaDefender Core

Die resolve_url() Funktion validiert den URI, bevor sie ihn mit der drawImage() Funktion. Wenn das Schema im URI nicht zu den zulässigen Protokollen gehört, wird die resolve_url() Funktion gibt eine Ausnahme an die Anwendung zurück.

Aufdecken und Beseitigen einer Sicherheitslücke in der Dompdf-Bibliothek mit OPSWAT MetaDefender Core

Wenn der URI die Validierung besteht, wird er an die drawImage() Funktion, die die file_get_contents() Funktion zur Behandlung des URI-Werts innerhalb der xlink:href Attribut. Die Sicherheitslücke entsteht an diesem Punkt: ein PHAR-Deserialisierungsangriff könnte ausgelöst werden, wenn ein Angreifer die Validierung umgehen und einen PHAR-Wrapper in den URI einfügen könnte.

Nach der Analyse wird festgestellt, dass die Validierung nur bei Tags mit dem exakten Namensbild erzwungen wird.

Aufdecken und Beseitigen einer Sicherheitslücke in der Dompdf-Bibliothek mit OPSWAT MetaDefender Core

Daher kann sie leicht umgangen werden, indem ein oder mehrere Zeichen im Namen des Tags großgeschrieben werden, wie z. B. Image. Infolgedessen könnte eine speziell gestaltete SVG-Datei, die Image anstelle von image verwendet, diese Validierung umgehen.

In einem weiteren Schritt wird die drawImage() aufgerufen und die URI der SVG-Datei an die Funktion file_get_contents() Funktion. Daher ermöglicht die Kombination aus der Umgehung der Validierung und einem Deserialisierungsangriff auf eine PHAR-Datei einem Angreifer die Ausführung von Remote-Code. Diese Schwachstelle öffnet einem böswilligen Angreifer die Tür, um den Anwendungsserver über eine SVG-Datei zu kompromittieren, wenn diese von einer anfälligen Version von dompdf verarbeitet wird.

Dompdf-Ausnutzungssimulation

Anfällige Anwendung

Um diese Ausnutzung als reales Szenario zu simulieren, haben OPSWAT Graduate Fellows eine Webanwendung entwickelt, die die Konvertierung von HTML in PDF mit der dompdf-Bibliothek Version 2.0.1 ermöglicht. Mit dieser Anwendung können Benutzer Dateitypen wie HTML, XML oder SVG hochladen und dann in PDF-Dateien umwandeln.

Aufdecken und Beseitigen einer Sicherheitslücke in der Dompdf-Bibliothek mit OPSWAT MetaDefender Core

Ein Angreifer geht folgendermaßen vor, um diese Schwachstelle in einer Anwendung auszunutzen, die eine verwundbare dompdf-Version (Version 2.0.1) verwendet:

Aufdecken und Beseitigen einer Sicherheitslücke in der Dompdf-Bibliothek mit OPSWAT MetaDefender Core
Aufdecken und Beseitigen einer Sicherheitslücke in der Dompdf-Bibliothek mit OPSWAT MetaDefender Core

Verwertungsfluss

Aufdecken und Beseitigen einer Sicherheitslücke in der Dompdf-Bibliothek mit OPSWAT MetaDefender Core

Zunächst erzeugt ein Angreifer ein bösartiges Objekt, das beim Aufruf des Destruktors eine Reverse Shell erstellt.

Aufdecken und Beseitigen einer Sicherheitslücke in der Dompdf-Bibliothek mit OPSWAT MetaDefender Core

Zweitens erstellt der Angreifer eine PHAR-Datei, die das bösartige Metadatenobjekt enthält. Wenn die PHAR-Datei von dem PHAR-Wrapper in der file_get_content() Funktion werden die Metadaten deserialisiert und das angegebene Objekt wird verarbeitet. Während dieses Deserialisierungsprozesses löst sie die Destruktoren aus und führt die Reverse Shell aus.

Aufdecken und Beseitigen einer Sicherheitslücke in der Dompdf-Bibliothek mit OPSWAT MetaDefender Core

Letztendlich bettet der Angreifer den URI-Link, der den PHAR-Wrapper enthält, in den Wert von xlink:href Attribut im Image-Tag, um die Validierung zu umgehen, bösartigen Code auszuführen und diese bösartige Datei in die Anwendung hochzuladen.

Aufdecken und Beseitigen einer Sicherheitslücke in der Dompdf-Bibliothek mit OPSWAT MetaDefender Core

Während der Verarbeitung der hochgeladenen bösartigen SVG-Datei baut die Anwendung eine umgekehrte Verbindung zum Angreifer auf, wodurch dieser den Anwendungsserver kompromittieren kann.

Aufdecken und Beseitigen einer Sicherheitslücke in der Dompdf-Bibliothek mit OPSWAT MetaDefender Core
Aufdecken und Beseitigen einer Sicherheitslücke in der Dompdf-Bibliothek mit OPSWAT MetaDefender Core
Aufdecken und Beseitigen einer Sicherheitslücke in der Dompdf-Bibliothek mit OPSWAT MetaDefender Core

Absicherung von Open-Source-Komponenten mit OPSWAT MetaDefender Core

Um die Sicherheitslücke CVE-2023-23924 in dompdf zu erkennen und zu entschärfen, nutzten unsere Graduate Fellows OPSWAT MetaDefender Core , ein mehrschichtiges Cybersecurity-Produkt, das fortschrittliche Malware-Präventions- und Erkennungstechnologien, einschließlich SBOM, bietet.

OPSWAT SBOM sichert die Software-Lieferkette durch die Bereitstellung eines umfassenden Komponenteninventars für Quellcode und Container. Durch die Analyse der dompdf-Bibliothek und ihrer Abhängigkeiten kann OPSWAT SBOM das Vorhandensein der verwundbaren Version 2.0.1 schnell identifizieren und die Benutzer auf das potenzielle Risiko hinweisen.

Darüber hinaus kann OPSWAT SBOM verwandte Technologien wie SVG- und PHAR-Dateien erkennen, die für das Verständnis und die Entschärfung der Sicherheitslücke CVE-2023-23924 wichtig sind. Diese ganzheitliche Sicht auf die Softwarekomponenten der Anwendung ermöglicht es den Sicherheitsteams, fundierte Entscheidungen zu treffen und geeignete Maßnahmen zur Behebung der erkannten Risiken zu ergreifen.

Aufdecken und Beseitigen einer Sicherheitslücke in der Dompdf-Bibliothek mit OPSWAT MetaDefender Core

Neben der Erkennung der verwundbaren dompdf-Version bietet OPSWAT SBOM auch wertvolle Einblicke in die betroffenen Komponenten, ihre Versionen und alle verfügbaren Updates oder Patches. Anhand dieser Informationen können Sicherheitsteams ihre Abhilfemaßnahmen priorisieren und sicherstellen, dass die Anwendung auf eine sichere Version von dompdf aktualisiert wird, um die Sicherheitslücke CVE-2023-23924 effektiv zu schließen.

Aufdecken und Beseitigen einer Sicherheitslücke in der Dompdf-Bibliothek mit OPSWAT MetaDefender Core

Durch den Einsatz der SBOM-Engine in MetaDefender Core können Unternehmen ihre Software-Lieferkette proaktiv überwachen, potenzielle Schwachstellen in Open-Source-Komponenten identifizieren und rechtzeitig Strategien zur Schadensbegrenzung implementieren, um die allgemeine Sicherheit und Integrität ihrer Anwendungen zu gewährleisten.

Abschließende Überlegungen

Die Entdeckung von CVE-2023-23924 in der dompdf-Bibliothek unterstreicht die Notwendigkeit der Wachsamkeit in der dynamischen Landschaft der Anwendungssicherheit. Durch die Nutzung der in diesem Blog-Beitrag beschriebenen Erkenntnisse und Strategien können Sicherheitsteams ihre Anwendungen effektiv aufspüren, entschärfen und vor solchen Schwachstellen schützen und so die allgemeine Sicherheit und Integrität ihres Software-Ökosystems gewährleisten.

Bleiben Sie auf dem Laufenden mit OPSWAT!

Melden Sie sich noch heute an, um die neuesten Unternehmensnachrichten, Berichte, Veranstaltungshinweise und vieles mehr zu erhalten.