Pillow-Schwachstellen gefährden Server zur Bildverarbeitung
Pillow-Schwachstellen, die mehrere Bildformate betreffen, könnten Python-basierte Websites und Dienste Abstürzen oder der Ausführung von Befehlen aussetzen, wenn sie nicht vertrauenswürdige Dateien verarbeiten. Die Maintainer haben die Schwachstellen in Pillow 13.0.0 behoben, das am 16. Oktober veröffentlicht wurde. Derzeit ist keine Ausnutzung der Schwachstellen bekannt, einige Angriffswege sind jedoch über gewöhnliche Abläufe zum Hochladen von Bildern und Erstellen von Vorschaubildern erreichbar.
Pillow ist eine Python-Softwarebibliothek zum Öffnen, Konvertieren, Skalieren und Speichern von Bildern. Eine der behobenen Schwachstellen, CVE-2026-112900, betrifft die Verarbeitung von Encapsulated PostScript-Bildern (EPS). Pillow übergibt einen EPS-Dateinamen an Ghostscript, ein separates Programm, das zur Umwandlung des Bildes in Pixel verwendet wird, ohne zuvor zu prüfen, ob der Name als Anweisung interpretiert werden könnte. Ein speziell gewählter Dateiname kann Ghostscript dazu veranlassen, auf eine andere Datei zu verweisen, die Betriebssystembefehle enthält.
Die gefährliche Eingabe ist der Dateiname und nicht der Inhalt des EPS-Dokuments. Daher könnte selbst ein harmloses Bild die Schwachstelle auslösen, wenn ein Angreifer den Namen kontrolliert, unter dem es geöffnet wird. Upload-Formulare sind besonders relevant, wenn eine Anwendung einen vom Benutzer angegebenen Dateinamen beibehält oder aus Benutzereingaben einen gespeicherten Dateinamen erstellt. Der Angriffsweg ist nur auf Systemen verfügbar, auf denen der Ghostscript-Befehl namens gs installiert ist. Pillow benötigt dieses Programm zum Öffnen von EPS-Dateien. Betroffen sind die Pillow-Versionen 2.6.0 bis 12.3.0.
Die Maintainer von Pillow stufen CVE-2026-112900 als mittelschwer ein, da eine Ausnutzung die Kontrolle über den Dateinamen voraussetzt. Der von GitHub zugewiesene CVE-Eintrag bewertet dieselbe zugrunde liegende Bedingung mit 9,2 von 10 Punkten. CISA-Analysten geben in dem Eintrag an, dass keine bekannte Ausnutzung vorliegt. Der Unterschied verdeutlicht, dass ein numerischer Schweregrad nicht zwangsläufig erfasst, ob eine bestimmte Website die erforderlichen Bedingungen hinsichtlich Dateiname und Ghostscript erfüllt.
Die Bibliothek ist in Web-Upload-Formularen, Generatoren für Avatare und Vorschaubilder, Systemen zur Dokument- und PDF-Verarbeitung sowie in Machine-Learning-Projekten weit verbreitet. OX Security, dessen Bericht die Aufmerksamkeit auf die Probleme lenkte, schätzt, dass Pillow monatlich etwa 436 Millionen Mal heruntergeladen wird. Diese Zahl entspricht nicht der Anzahl verwundbarer Server, zeigt aber, wie häufig das Paket direkt oder als Abhängigkeit anderer Software vorkommen kann.
Version 13.0.0 enthält Korrekturen in vier Schweregraden, von niedrig bis kritisch. Die Maintainer ordnen zwei Gruppen von Korrekturen ihrer höchsten Stufe zu. Eine davon behebt die Wiederverwendung veralteter Bilddaten nach einer Änderung des Bildmodus. Die andere betrifft zwei Fälle von buffer overflow, also Fehler, bei denen Software über den für Daten reservierten Speicherbereich hinausschreibt, die mit der Bilddekodierung zusammenhängen.
Einer dieser overflow-Angriffswege betrifft das Format FlashPix (FPX). Es wurde nachgewiesen, dass damit ein Befehl eines Angreifers ausgeführt werden kann, wenn eine Anwendung einen einzigen Image.open()-Aufruf für eine manipulierte Datei ausführt, sofern das optionale Paket olefile installiert ist. Pillow erkennt FlashPix-Daten anhand des Dateiinhalts und nicht anhand der Dateiendung. Ein Dienst, der nicht vertrauenswürdige Uploads automatisch öffnet, könnte daher den verwundbaren Code erreichen, selbst wenn die hochgeladene Datei nicht die erwartete FPX-Dateiendung verwendet.
Eine weitere Schwachstelle, CVE-2026-112403, verursacht einen buffer overflow im Arbeitsspeicher, wenn Software aus einem manipulierten verlustfreien JPEG-Bild ein Vorschaubild erstellt. Der zugehörige Sicherheitshinweis nennt einen Prozessabsturz und keine Befehlsausführung als Folge. Laut diesem Hinweis entdeckte Anthropic den Fehler mithilfe von Claude im Rahmen eines Sicherheitsprojekts für Open-Source-Software, und Ada Logics validierte ihn manuell. Die Arbeit ist Teil einer umfassenderen Initiative von Anthropic, die Hunderte von Schwachstellen in Open-Source-Bibliotheken identifiziert hat.
CVE-2026-112393 betrifft komprimierte Bilder im Tagged Image File Format (TIFF) und besteht in Pillow seit 2013. Die Schwachstelle kann einen buffer overflow verursachen, wenn eine Anwendung ein komprimiertes TIFF in einem in-memory buffer wie io.BytesIO speichert, anstatt es in eine Datei auf dem Datenträger zu schreiben. Dieses Muster kann auftreten, wenn ein Onlinedienst ein hochgeladenes Bild neu kodiert und unmittelbar zurückgibt. Die meldenden Forscher brachten den Prozess über diese Schwachstelle zum Absturz und erreichten eine Befehlsausführung nur durch die Kombination mit einer separaten Schwachstelle, die Speicheradressen offenlegte. Das direkte Speichern des TIFF in einer Datei auf dem Datenträger ist nicht betroffen.
Die von GitHub zugewiesenen CVE-Einträge bewerten die EPS-Schwachstelle, die Schwachstelle bei Vorschaubildern aus verlustfreien JPEGs und die TIFF-Schwachstelle jeweils mit 9,2 von 10 Punkten. Ihre praktischen Auswirkungen hängen dennoch von Bedingungen ab, die durch diese Bewertungen nicht ausgedrückt werden, und die Maintainer stufen die gesamte Gruppe von mittelschwer bis kritisch ein. Die Einträge weisen auf einen öffentlichen proof of concept für die TIFF-Schwachstelle hin, während für keine der gemeldeten Pillow-Schwachstellen aktive Angriffe bekannt sind.
Administratoren sollten auf Pillow 13.0.0 aktualisieren und Container, Python-Paketdateien sowie Basis-Images, die eine ältere Version enthalten, neu erstellen. Pillow 13 unterstützt Python 3.10 nicht mehr. Systeme mit dieser Python-Version müssen daher im Zuge des Updates auf Python 3.11 oder neuer umgestellt werden. Anschließend kann das Paket mit pip und der Versionsanforderung Pillow 13.0.0 oder neuer aktualisiert werden.
Wenn ein sofortiges Update nicht möglich ist, empfiehlt Pillow, Ghostscript von Hosts fernzuhalten, die nicht vertrauenswürdige Uploads verarbeiten, und sicherzustellen, dass Angreifer keine an Image.open() übergebenen EPS-Dateinamen auswählen können. Bei nicht vertrauenswürdigen JPEG-Dateien sollten Anwendungen draft() und thumbnail() vermeiden, vor diesen Operationen load() aufrufen oder reducing_gap auf None setzen. Dienste, die Bilder von Benutzern empfangen, sollten außerdem das Speichern komprimierter TIFF-Dateien in einem in-memory buffer als sensiblen Vorgang behandeln. Für Organisationen, die die Infrastruktur hinter Websites zur Bildverarbeitung überprüfen, bietet AEU-I sicherheitsorientierte IT-, Infrastruktur- und Beratungsleistungen. Diese vorübergehenden Einschränkungen reduzieren einzelne Angriffswege, doch der Umstieg auf die korrigierte Pillow-Version behebt die vollständige hier beschriebene Gruppe von Schwachstellen.