Kritische Pillow-Schwachstellen ermöglichen Codeausführung über manipulierte Bilder
Pillow-Versionen vor 13.0.0 enthalten kritische Sicherheitslücken, die eine Remote-Code-Ausführung über EPS-Dateinamen und JPEG-Verarbeitung ermöglichen.
Automatisch aus dem englischen Original übersetzt.
Eine kritische Sicherheitslücke in Pillow, der führenden Bildverarbeitungs-Bibliothek für Python, ermöglicht es Angreifern, beliebige Betriebssystembefehle auf betroffenen Servern auszuführen. Der Fehler, identifiziert als CVE-2026-112900, wurde in Version 13.0.0 behoben, die am 16. Oktober 2026 veröffentlicht wurde. Betroffen sind Installationen von Version 2.6.0 bis 12.3.0.
Was passiert ist
Die Haupt-Schwachstelle betrifft die Handhabung von Encapsulated PostScript (EPS)-Dateien durch Pillow. Beim Öffnen eines EPS-Bildes übergibt Pillow den Dateinamen direkt an Ghostscript, ein separates Programm zum Rendern, ohne die Eingabe vorher zu bereinigen. Ein Angreifer kann einen bösartigen Dateinamen erstellen, den Ghostscript nicht als Pfad, sondern als Befehl interpretiert. Dies ermöglicht es dem Angreifer, Ghostscript auf eine sekundäre Datei zu lenken, die ausführbare Befehle enthält, wodurch er effektiv die Kontrolle über den Serverprozess übernimmt.
Dieses Problem ist besonders gefährlich, da der Auslöser der Dateiname selbst ist und nicht der Inhalt des Bildes. Wie im Advisory vermerkt: „Der Fehler wird durch den Dateinamen ausgelöst, nicht durch irgendetwas im PostScript-Dokument.“ Das bedeutet, dass sogar eine harmlose EPS-Datei Schaden anrichten kann, wenn ihr Name von einem Angreifer manipuliert wird. Der Exploit erfordert, dass auf dem Zielserver Ghostscript installiert ist und die Anwendung benutzergesteuerte Dateinamen beim Hochladen oder Verarbeiten akzeptiert.
Neben der EPS-Schwachstelle behebt Version 13.0.0 zwei weitere kritische Probleme. Eines davon ist ein Speicherüberlauf bei der JPEG-Decodierung, speziell im FlashPix-Format, der zur Codeausführung führen kann, wenn das optionale Paket olefile vorhanden ist. Ein weiterer, seit 2013 bestehender Bug verursacht einen Buffer Overflow beim Speichern komprimierter TIFF-Bilder in Speicher-Puffern wie io.BytesIO, ein häufiges Muster in Webdiensten, die Uploads neu kodieren.
Wichtige Details
- Betroffene Versionen: Pillow 2.6.0 bis 12.3.0 sind verwundbar; Version 13.0.0 enthält die Fixes.
- Primärer Vektor: CVE-2026-112900 ermöglicht Codeausführung über manipulierte EPS-Dateinamen, die an Ghostscript übergeben werden.
- Sekundäre Vektoren: Kritische Buffer Overflows existieren bei der Generierung von JPEG-Thumbnails und beim Speichern von TIFFs im Speicher.
- Entdeckung: Die JPEG-Schwachstelle wurde von Anthropic unter Verwendung von Claude für Sicherheitsanalysen identifiziert und anschließend von Ada Logics validiert.
- Schweregrad: GitHub-CVE-Einträge bewerten die EPS-, TIFF- und JPEG-Fehler mit 9,2 von 10 Punkten, obwohl die Maintainer das EPS-Problem aufgrund der Anforderungen an die Dateinamenkontrolle als moderat einstufen.
- Verbreitung: OX Security schätzt, dass Pillow etwa 436 Millionen Mal pro Monat heruntergeladen wird, was auf eine weitreichende Exposition hinweist.
Hintergrund
Pillow ist ein Fork der Python Imaging Library (PIL) und dient als De-facto-Standard für Bildmanipulation in Python-Ökosystemen. Es ist eine Abhängigkeit für unzählige Web-Frameworks, Dokumentverarbeitungspipelines und Machine-Learning-Tools. Aufgrund seiner weiten Verbreitung haben Schwachstellen in Pillow eine große Streubreite und können alles beeinträchtigen, von einfachen Avatar-Upload-Formularen bis hin zu komplexen Dokumentenmanagementsystemen.
Ghostscript ist ein Interpreter für die PostScript-Sprache und PDF-Dateien. Viele Linux-Distributionen enthalten es standardmäßig, und Python-Anwendungen verlassen sich oft darauf, um vektorbasierte Bildformate wie EPS zu verarbeiten. Die Interaktion zwischen Pillow und Ghostscript schafft eine Brücke, bei der unsachgemäße Eingabeverarbeitung in einer Komponente zu Command Injection in der anderen führen kann, wodurch typische sicherheitsrelevante Kontrollen auf Anwendungsebene umgangen werden.
Warum es wichtig ist
Für Teams, die Self-Hosted-Software betreiben, verdeutlicht diese Schwachstelle die Risiken, die mit der Abhängigkeit von komplexen Dependency-Chains verbunden sind. Wenn Ihre Anwendung Bild-Uploads von Benutzern akzeptiert, wie Profilbilder, gescannte Dokumente oder Design-Assets, verwendet sie wahrscheinlich Pillow. Eine ungepatchte Instanz könnte es einem Angreifer ermöglichen, Shell-Zugriff auf Ihren Server zu erhalten, einfach indem er eine Datei mit einem bestimmten Namen oder Struktur hochlädt.
Die Auswirkungen gehen über die unmittelbare Codeausführung hinaus. Die TIFF-Schwachstelle, die seit über einem Jahrzehnt besteht, zeigt, wie Legacy-Code in kritischer Infrastruktur persistieren kann. Dienste, die Bilder aus Performance-Gründen im Speicher verarbeiten, wie das Generieren von Vorschauen oder das Konvertieren von Formaten on-the-fly, sind speziell gefährdet. Dies betrifft viele moderne Webanwendungen, die vermeiden, temporäre Dateien auf die Disk zu schreiben.
Darüber hinaus signalisiert die Entdeckungsmethode einen Wandel darin, wie Schwachstellen gefunden werden. Da KI-Agenten jetzt aktiv Open-Source-Code auditieren, könnten wir einen Anstieg gemeldeter Fehler in ausgereiften Bibliotheken sehen. Teams müssen sich auf schnellere Patch-Zyklen und häufigere Sicherheitsupdates ihrer Kernabhängigkeiten vorbereiten.
Was Sie tun können
- Sofort aktualisieren: Aktualisieren Sie Pillow auf Version 13.0.0 oder neuer mit pip install -U "Pillow>=13.0.0".
- Python-Version prüfen: Beachten Sie, dass Pillow 13 die Unterstützung für Python 3.10 einstellt. Sie müssen daher auf Python 3.11 oder neuer upgraden, wenn Sie noch auf 3.10 sind.
- Container neu bauen: Wenn Sie Docker oder andere Containerisierungstools verwenden, bauen Sie Ihre Images neu, um sicherzustellen, dass die neue Version eingebettet ist, da alte Layer die verwundbare Bibliothek behalten können.
- Ghostscript einschränken: Wenn Sie nicht sofort upgraden können, entfernen Sie die gs-Binary von Hosts, die nicht vertrauenswürdige Uploads verarbeiten, um die EPS-Schwachstelle zu mildern.
- Dateinamen bereinigen: Stellen Sie sicher, dass jede Datei, die an Image.open() übergeben wird, keine benutzergesteuerten Daten im Pfad oder Namen enthält.
- Risikoreiche Operationen vermeiden: Verzichten Sie darauf, draft() oder thumbnail() auf nicht vertrauenswürdigen JPEGs zu verwenden, und vermeiden Sie das Speichern komprimierter TIFFs in Speicher-Puffern, bis der Patch installiert ist.



