#Linux & Open Source · 4 Min. Lesezeit · Tim Rinkel

ACHTUNG, PYTHON-FANS! Pillow hat eine kritische Lücke — ein manipulierter Dateiname reicht für Befehle auf deinem Server

ACHTUNG, PYTHON-FANS! Pillow hat eine kritische Lücke — ein manipulierter Dateiname reicht für Befehle auf deinem Server

Du hast irgendwo ein Python-Skript, das Bilder verkleinert? Dann steckt mit hoher Wahrscheinlichkeit Pillow drin. Die Bibliothek wird laut OX Security rund 436 Millionen Mal pro Monat heruntergeladen. Jetzt ist ein ganzes Paket an Lücken bekannt geworden — und eine davon braucht nicht einmal ein bösartiges Bild, sondern nur einen bösartigen Dateinamen.

DAS IST PASSIERT: Ein Dateiname wird zum Befehl

Im Mittelpunkt steht CVE-2026-112900. Pillow öffnet EPS-Bilder, indem es den Dateinamen an Ghostscript (gs) übergibt — ohne ihn vorher zu prüfen. Ghostscript kann einen manipulierten Namen als Anweisung lesen und auf eine zweite Datei mit Befehlen verweisen.

Das Besondere: Der Auslöser ist der Name, nicht der Inhalt. Eine harmlose EPS-Datei wird gefährlich, sobald ein Angreifer den Dateinamen bestimmen kann. Voraussetzung ist, dass gs auf dem Host installiert ist — ohne Ghostscript kann Pillow EPS gar nicht öffnen.

WIE SCHLIMM IST DAS? Zwei Bewertungen, ein Update

Die CVE-Einträge auf GitHub bewerten die Lücken in EPS, TIFF und JPEG-Thumbnail mit 9,2 von 10. Die Pillow-Maintainer sehen die EPS-Lücke dagegen nur als mittel, weil der Angreifer den Dateinamen kontrollieren muss. Beides ist nachvollziehbar — wer Uploads ungeprüft mit dem Originalnamen verarbeitet, lebt gefährlicher als ein Skript für eigene Fotos.

Nach aktuellem Stand ist keine der Lücken in Angriffen bekannt. Für die TIFF-Lücke gibt es laut den CISA-Einträgen einen öffentlichen Proof-of-Concept.

WEITERE LÜCKEN IM PAKET

  • CVE-2026-112403 — Pufferüberlauf beim Erzeugen von Thumbnails aus einem manipulierten verlustfreien JPEG. Laut Advisory führt das zum Absturz. Gefunden hat die Lücke Anthropic mit Claude, geprüft wurde sie von Ada Logics.
  • CVE-2026-112393 — Überlauf beim Speichern eines komprimierten TIFF im Arbeitsspeicher (etwa in io.BytesIO), vorhanden seit 2013. Für Codeausführung wäre eine zweite Lücke nötig, die Speicheradressen verrät. Speichern auf Platte ist nicht betroffen.
  • Kritischer Speicherfehler — veraltete Bilddaten werden nach einem Moduswechsel weiterverwendet.
  • FPX-Lücke — laut Bericht reicht ein Image.open() auf eine präparierte Datei, wenn das optionale Paket olefile installiert ist.

Pillow 13.0.0 vom 16. Oktober behebt Fehler auf vier Schweregradstufen, zwei davon stufen die Maintainer als kritisch ein.

SO SCHÜTZT DU DICH

  1. Aktualisieren: pip install -U "Pillow>=13.0.0". Pillow 13 verlangt Python 3.11 oder neuer — Python 3.10 fällt raus.
  2. Container neu bauen: Auch Wheels, Images und Basis-Images mit älteren Pillow-Kopien brauchen den neuen Stand.
  3. Ghostscript weglassen: Auf Hosts mit Fremd-Uploads gehört gs nicht auf die Platte. Übergib niemals einen vom Nutzer kontrollierten Dateinamen an Image.open() für EPS.
  4. Thumbnails absichern: Bei fremden JPEGs draft() und thumbnail() meiden, erst load() aufrufen oder reducing_gap=None setzen.

FAZIT: Kein Weltuntergang, aber ein Pflicht-Update

Gerade im Homelab steckt Pillow in vielen Tools: Foto-Verwaltung, Dokumenten-Scanner, Skripte für Vorschaubilder. Wer fremde Dateien annimmt, sollte noch heute auf 13.0.0 gehen. Die Abwärts-Hürde ist dabei nur Python 3.10 — alles andere ist ein einzelner Befehl.

Häufige Fragen

Bin ich betroffen, wenn ich nur eigene Fotos verkleinere?
Das Risiko ist gering, weil der Angreifer den Dateinamen oder den Inhalt kontrollieren müsste. Trotzdem lohnt das Update, denn Pillow 13.0.0 behebt auch Speicherfehler, die nicht von Fremddaten abhängen. Besonders wichtig ist es für Dienste, die Uploads von Dritten verarbeiten, etwa Foto-Galerien, Wikis oder Dokumentenablagen mit Vorschaubildern.
Brauche ich Ghostscript überhaupt?
Nur wenn du EPS-Dateien mit Pillow öffnen willst. Pillow ruft für dieses Format das Programm gs auf. Fehlt Ghostscript auf dem Host, ist der Angriffsweg über CVE-2026-112900 versperrt. Auf Servern mit Nutzer-Uploads ist es deshalb sinnvoll, das Paket gar nicht erst zu installieren oder die EPS-Unterstützung zu sperren.
Wird die Lücke schon ausgenutzt?
Nach aktuellem Stand nicht. Die CISA-Einträge markieren für die EPS-Lücke keine bekannte Ausnutzung, für die TIFF-Lücke gibt es einen öffentlichen Proof-of-Concept. Das ist kein Grund zur Entwarnung: Öffentliche Beispielcodes verkürzen erfahrungsgemäß die Zeit, bis Angreifer Nachbauten testen. Wer Uploads annimmt, sollte also nicht lange warten.
Läuft mein Skript nach dem Update noch?
Pillow 13 unterstützt Python 3.10 nicht mehr. Läuft dein Skript oder Container auf Python 3.11 oder neuer, genügt der pip-Befehl. Bei Python 3.10 musst du zuerst die Python-Version anheben. Teste Bildverarbeitung danach kurz mit ein paar typischen Dateien, bevor du den Dienst wieder öffentlich erreichbar machst.

Quellen

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert