Forscher haben eine ungepatchte Sicherheitslücke in „dompdf“, einem PHP-basierten HTML-zu-PDF-Konverter, aufgedeckt, die bei erfolgreicher Ausnutzung in bestimmten Konfigurationen zur Remotecodeausführung führen kann.

„Durch das Einfügen von CSS in die von dompdf verarbeiteten Daten kann es dazu gebracht werden, eine bösartige Schriftart mit der Dateierweiterung .php in seinem Font-Cache zu speichern, die später durch einen Zugriff aus dem Web ausgeführt werden kann“, so die Positive Security-Forscher Maximilian Kirchmeier und Fabian Bräunlein in einem heute veröffentlichten Bericht.

Mit anderen Worten: Die Schwachstelle ermöglicht es einer böswilligen Partei, Schriftdateien mit einer .php-Erweiterung auf den Webserver hochzuladen, die dann über eine XSS-Schwachstelle aktiviert werden können, um HTML in eine Webseite einzuschleusen, bevor sie als PDF gerendert wird.

Das bedeutet, dass der Angreifer möglicherweise zu dem hochgeladenen .php-Skript navigieren kann, was eine Remotecodeausführung auf dem Server ermöglicht.

Dies kann erhebliche Auswirkungen auf Websites haben, die eine serverseitige Generierung von PDFs auf der Grundlage von Benutzerdaten erfordern, wie z. B. Ticketkäufe und andere Quittungen, insbesondere wenn die Eingaben nicht ausreichend bereinigt werden, um XSS-Schwachstellen zu entschärfen, oder wenn die Bibliothek in einem öffentlich zugänglichen Verzeichnis installiert ist.

Laut Statistiken auf GitHub wird dompdf in fast 59.250 Repositories verwendet, was es zu einer beliebten Bibliothek für die Erstellung von PDFs in der Programmiersprache PHP macht.

Dompdf-Versionen 1.2.0 und früher, die sich in einem für das Web zugänglichen Verzeichnis befinden und bei denen die Einstellung „$isRemoteEnabled“ aktiviert ist, sollten als anfällig gelten. Die Versionen 0.8.5 und früher der Bibliothek sind jedoch auch dann betroffen, wenn diese Option auf false gesetzt ist.

Obwohl die Schwachstelle am 5. Oktober 2021 an die Betreuer des Open-Source-Projekts gemeldet wurde, haben die Entwickler noch keinen Zeitplan genannt, bis wann die Korrekturen voraussichtlich bereitgestellt werden.

„Sicherheitslücken entstehen oft aufgrund von (Design-)Entscheidungen, die auf falschen Annahmen über zugrunde liegende oder miteinander verbundene Komponenten beruhen“, so die Forscher. „Aktualisiere dompdf auf eine aktuelle Version und schalte $isRemoteEnabled aus, wenn dies für deinen Anwendungsfall möglich ist.