# Pillow : failles de lecture OOB et déni de service

_Publié le 5 novembre 2026 — https://ip73.fr/2026/11/05/pillow-failles-de-lecture-oob-et-deni-de-service/_

Plusieurs failles dans la bibliothèque Pillow, utilisée pour le traitement d'images en Python, exposent les systèmes à des fuites de mémoire ou à un blocage total. Ubuntu Security a rendu publique une série de notifications (USN-8999-1), signalant que des problèmes d'implémentation dans la librairie peuvent permettre à un attaquant de provoquer des dénis de service ou d'exfiltrer des informations sensibles.

Le cœur du problème concerne la gestion de certains formats de fichiers. Pour le format McIdas AREA, une erreur dans le traitement des valeurs de stride de carte permet, selon les analyses techniques, une lecture hors limites (out-of-bounds read). En fournissant des en-têtes contrôlables, un attaquant peut forcer le programme à lire au-delà des données allouées, ce qui peut mener à l'exposition de la mémoire adjacente du processus ou à un blocage immédiat du système.

## Ce qui est touché et la gravité réelle

Ces failles ne sont pas sans conséquence. Les problèmes liés au stride des lignes, documentés par la communauté GitHub, permettent théoriquement de contourner les garde-fous de lecture. Il s'agit d'une attaque à distance, mais elle nécessite la manipulation d'un fichier spécifique — une image McIdas AREA — et l'utilisation des fonctions de Pillow, comme `Image.tobytes()` ou `getpixel`. Le risque de déni de service est immédiat pour tout service traitant ce type de fichier.

Au-delà de ce vecteur de lecture, Pillow présente d'autres failles liées à la gestion des bombes de décompression. Plusieurs CVE, dont CVE-2026-54059, CVE-2026-54060 et CVE-2026-55379, indiquent que la librairie ne vérifie pas correctement les structures des fichiers de polices ou des fichiers GD. Le résultat est une allocation mémoire excessive, amenant à un blocage du service. On observe là le même schéma de risque : des vérifications manquantes sur des données externes permettent à l'attaquant de dicter la consommation de ressources.

## Qui doit agir et comment

La bonne nouvelle, c'est que les correctifs sont disponibles. Selon Ubuntu Security, la mise à jour est la seule parade efficace. Les versions corrigées varient selon la distribution : pour Ubuntu 26.04 LTS, il faut migrer vers la version `python3-pil – 12.1.1-2ubuntu1.4`. Pour les systèmes 24.04 LTS et 22.04 LTS, les versions à installer sont respectivement `10.2.0-1ubuntu1.4` et `9.0.1-1ubuntu0.6`.

Il est impératif de s'assurer que tous les environnements qui dépendent de Pillow suivent ces mises à jour rapidement. On note que certaines failles, comme celle concernant les fichiers EPS et un compte d'octets négatif, n'affectent que des versions spécifiques, notamment Ubuntu 26.04 LTS pour CVE-2026-59203, ce qui complexifie l'inventaire des dépendances.

## Que faire maintenant

Si votre infrastructure repose sur des applications traitant des images, surtout des fichiers provenant de sources non maîtrisées, la revue des versions de Pillow est prioritaire. En attendant une mise à jour complète, si vous travaillez avec des fichiers McIdas AREA, il est conseillé de mettre en place une validation des métadonnées entrantes pour détecter des valeurs aberrantes sur les champs de stride avant de les passer à la librairie. Surveiller l'implémentation des mécanismes de limite de taille pour les flux PDF décompressés (CVE-2026-59200) reste également une bonne pratique défensive.

## Fiche technique

| CVE | Produit | Gravité | Exploitée activement | Versions corrigées |
|---|---|---|---|---|
| CVE-2026-54058 | pillow (pip) | Élevée (CVSS 8,3) | Non signalée | pillow 12.3.0 |
| CVE-2026-54059 | pillow (pip) | Élevée (CVSS 7,5) | Non signalée | pillow 12.3.0 |
| CVE-2026-54060 | pillow (pip) | Élevée (CVSS 7,5) | Non signalée | pillow 12.3.0 |

*Données : [NVD](https://nvd.nist.gov/) (NIST) et [GitHub Advisory Database](https://github.com/advisories) ([CC BY 4.0](https://creativecommons.org/licenses/by/4.0/deed.fr), données adaptées).*

## Sources

- [USN-8999-1: Pillow vulnerabilities](https://ubuntu.com/security/notices/USN-8999-1), Ubuntu Security, 4 novembre 2026
- [Avis de sécurité (github.com)](https://github.com/python-pillow/Pillow/security/advisories/GHSA-62p4-gmf7-7g93), github.com, 14 juillet 2026
- [GHSA-62p4-gmf7-7g93](https://github.com/advisories/GHSA-62p4-gmf7-7g93) : Pillow: Out-of-bounds read via attacker-controlled row stride on Pillow's mmap path…, GitHub Advisory Database (CC BY 4.0)
- [CVE-2026-54058](https://nvd.nist.gov/vuln/detail/CVE-2026-54058), NVD (NIST)
- [GHSA-8v84-f9pq-wr9x](https://github.com/advisories/GHSA-8v84-f9pq-wr9x) : Pillow \`PcfFontFile.\_load\_bitmaps()\`: \`Image.frombytes()\` called without…, GitHub Advisory Database (CC BY 4.0)
- [CVE-2026-54059](https://nvd.nist.gov/vuln/detail/CVE-2026-54059), NVD (NIST)
- [GHSA-5x94-69rx-g8h2](https://github.com/advisories/GHSA-5x94-69rx-g8h2) : Pillow: \`FontFile.compile()\`: \`Image.new()\` called without \`\_decompression\_bomb\_check()\`, GitHub Advisory Database (CC BY 4.0)
- [CVE-2026-54060](https://nvd.nist.gov/vuln/detail/CVE-2026-54060), NVD (NIST)
