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 Paketolefileinstalliert 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
- Aktualisieren:
pip install -U "Pillow>=13.0.0". Pillow 13 verlangt Python 3.11 oder neuer — Python 3.10 fällt raus. - Container neu bauen: Auch Wheels, Images und Basis-Images mit älteren Pillow-Kopien brauchen den neuen Stand.
- Ghostscript weglassen: Auf Hosts mit Fremd-Uploads gehört
gsnicht auf die Platte. Übergib niemals einen vom Nutzer kontrollierten Dateinamen anImage.open()für EPS. - Thumbnails absichern: Bei fremden JPEGs
draft()undthumbnail()meiden, erstload()aufrufen oderreducing_gap=Nonesetzen.
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.