Ce qui se passe
Pillow 13.0.0, sortie le 16 octobre 2026, est un correctif de sécurité de grande ampleur : des failles de gravité faible à critique, dont deux que les mainteneurs classent critiques. OX Security, dont le rapport a attiré l'attention, chiffre les téléchargements de la bibliothèque à environ 436 millions par mois. Aucune de ces failles n'est connue pour être exploitée.
Le défaut EPS : CVE-2026-112900
Pour ouvrir un fichier EPS, Pillow passe son nom à Ghostscript (le programme
gs), sans le vérifier. Ghostscript peut lire un nom choisi par un attaquant
comme des instructions plutôt que comme un chemin, et le diriger vers un second
fichier qui porte des commandes. L'avis (GHSA-w889-685w-c8fh) le dit sans détour :
c'est le nom qui déclenche la faille, pas le contenu PostScript. Un EPS inoffensif
suffit.
La cible réaliste est donc un point d'envoi de fichiers qui conserve ou construit le nom du fichier stocké à partir de la saisie d'un utilisateur.
- Versions touchées : Pillow 2.6.0 à 12.3.0, et seulement sur un hôte où
gsest installé, puisque Pillow en a besoin pour lire l'EPS. - Gravité : « modérée » pour les mainteneurs, parce que l'attaquant doit contrôler le nom ; 9,2 sur 10 dans l'enregistrement CVE établi par GitHub.
Les autres corrections du lot
- FlashPix (FPX) (GHSA-5x8w-8jj5-q52h) : un dépassement dans le décodage JPEG
de ce format a servi à exécuter une commande depuis un seul appel à
Image.open()sur un fichier forgé, si le paquet optionnelolefileest installé. Pillow reconnaît les formats par le contenu, pas par l'extension : un serveur qui ouvre des envois non fiables est atteignable sans geste de l'utilisateur. CVE-2026-112403(GHSA-8g5g-8vmr-9782) : dépassement à la création d'une miniature d'un JPEG sans perte forgé. Un plantage, pas d'exécution. Le défaut a été trouvé par Anthropic avec Claude, validé à la main par Ada Logics.CVE-2026-112393(GHSA-332p-7hrc-92wf) : présent depuis 2013, un dépassement à l'enregistrement d'un TIFF compressé en mémoire (le cas d'un service qui ré-encode un envoi et le renvoie). Un plantage ; l'exécution de code n'a été obtenue qu'avec une seconde faille qui fuit des adresses. Enregistrer sur disque n'est pas concerné. Une preuve de concept publique existe.
Comment s'y prendre
pip install -U "Pillow>=13.0.0"Reconstruire aussi les conteneurs, les roues et les images de base qui en embarquent une copie ancienne. Pillow 13 abandonne Python 3.10 : il faut Python 3.11 ou plus récent.
En attendant la mise à jour :
- EPS : ne pas installer
gssur un hôte qui traite des envois non fiables, et ne jamais passer un nom contrôlé par un attaquant àImage.open()pour un EPS. - Miniatures JPEG : éviter
draft()etthumbnail()sur des JPEG non fiables, ou appelerload()d'abord, ou passerreducing_gap=None. - TIFF : traiter l'enregistrement dans un tampon mémoire (
io.BytesIO) d'une image venue d'un utilisateur comme un chemin sensible.
Source : The Hacker News, 23 octobre 2026. Source en anglais. Compléments cités par l'article : notes de version 13.0.0, avis GHSA-w889-685w-c8fh, OX Security.