Un simple fichier PSD forgé déclenche un heap buffer overflow déterministe dans la librairie SAIL. CVE-2026-40493 obtient un CVSS de 9.8.
En bref
- CVE-2026-40493 (CVSS 9.8) — heap buffer overflow critique dans la librairie de traitement d'images SAIL, déclenché par des fichiers PSD forgés.
- Impact : crash de service garanti, exécution de code potentielle. Toute application embarquant SAIL sans le correctif est concernée.
- Action urgente : appliquer le commit
c930284445ea3ff94451ccd7a57c999eca3bc979ou mettre à jour SAIL vers la version corrigée publiée le 18 avril 2026.
Les faits
La vulnérabilité CVE-2026-40493, publiée le 18 avril 2026 et relayée par TheHackerWire, OffSeq Threat Radar et Vulnerability-Lookup, affecte SAIL (Squirrel Abstract Image Library), une librairie C multi-plateforme utilisée pour lire et écrire de nombreux formats d'image incluant le PSD d'Adobe Photoshop. La faille obtient un score CVSS v3.1 de 9.8 (Critical) — vecteur AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H — et est classée CWE-787 (Out-of-bounds Write). Selon l'advisory officiel, aucune exploitation in-the-wild n'a été publiquement documentée à la date de publication, mais la combinaison « déterminisme de l'overflow + vecteur réseau + aucune authentification » classe la CVE parmi les correctifs à appliquer en priorité sur toute la chaîne logicielle embarquant SAIL.
Techniquement, le défaut réside dans le codec PSD de SAIL. La librairie calcule le nombre d'octets par pixel (bpp) à partir des champs bruts d'en-tête channels * depth. Pour le mode colorimétrique LAB avec channels=3 et depth=16, le calcul donne bpp = (3*16 + 7)/8 = 6. Mais le buffer de pixels est alloué en fonction du format résolu, ici BPP40_CIE_LAB, qui ne réserve que 5 octets par pixel. Chaque écriture de pixel déborde donc d'un octet, et ce de façon déterministe sur chaque ligne de l'image. L'overflow se propage au-delà de la zone allouée dans le tas et peut être transformé en écriture contrôlée par un attaquant via la construction d'un PSD malicieux.
Le correctif est contenu dans le commit c930284445ea3ff94451ccd7a57c999eca3bc979 du dépôt HappySeaFox/sail. Toute application, service ou outil de ligne de commande qui traite des PSD via SAIL doit intégrer cette mise à jour. Les distributions Linux maintenant SAIL — Arch, Debian testing, Fedora — ont commencé à pousser les paquets corrigés à partir du 19 avril 2026.
Impact et exposition
L'exposition dépend des intégrations. SAIL est utilisée par plusieurs visualiseurs d'images multi-format open source, des pipelines de traitement automatisé d'images (e-commerce, DAM, CDN), et certains services cloud de conversion d'image à la volée. Toute plateforme acceptant un upload utilisateur PSD puis passant le fichier à SAIL pour extraction de miniatures, conversion ou indexation doit être considérée comme exposée. Les scénarios de surface d'attaque typiques : plateformes collaboratives de design, galeries web avec conversion automatique, outils de gestion de fichiers auto-hébergés et bibliothèques d'asset management utilisées en interne.
Le risque est amplifié lorsque SAIL tourne dans un contexte privilégié — processus root, conteneur privilégié, ou service accessible sans sandboxing renforcé. Dans ces environnements, l'exploitation du heap overflow peut conduire à une exécution de code distante complète, avec potentiellement un pivotement vers le stockage des fichiers utilisateurs. Même sans RCE atteinte, le crash déterministe suffit à monter une campagne de déni de service ciblée. À lire également pour des patterns similaires d'exploitation via parsing de fichier : CVE-2026-34621 Adobe Reader zero-day.
Recommandations immédiates
- Mettre à jour SAIL vers la version corrigée intégrant le commit
c930284445ea3ff94451ccd7a57c999eca3bc979— advisory HappySeaFox/sail du 18 avril 2026. - Recenser les dépendances : identifier tous les projets embarquant SAIL directement ou via dépendance transitive. Vérifier les paquets système (
pacman -Q sail,dpkg -l | grep libsail) et les images Docker en production. - Sandboxing préventif : exécuter tout parseur d'image dans un processus isolé (seccomp, AppArmor, namespaces) pour limiter l'impact d'un potentiel RCE avant patch complet.
- Filtrage en amont : rejeter les uploads PSD dépassant une taille raisonnable, et valider les en-têtes avant passage au parseur. Un PSD forgé exploitant CVE-2026-40493 contient des valeurs
channels=3, depth=16incohérentes avec un usage légitime basique. - Monitoring : surveiller les crashs répétés de processus traitant des images (SIGSEGV, SIGABRT). Un schéma de crash corrélé à l'ingestion de fichiers PSD suggère une tentative d'exploitation.
⚠️ Urgence
Overflow déterministe + vecteur réseau + aucune authentification = CVE 9.8. Même en l'absence d'exploitation in-the-wild documentée à ce jour, la simplicité du trigger (un fichier PSD malicieux) et la large diffusion de SAIL dans la chaîne d'approvisionnement open source imposent un patch rapide. Les plateformes acceptant des uploads d'images utilisateurs sont en première ligne.
Comment savoir si mon application utilise SAIL ?
Sur Linux, inspecter les liens dynamiques du binaire : ldd mon_binaire | grep sail ou readelf -d mon_binaire | grep -i sail. Au niveau paquet : pacman -Qs sail (Arch), dpkg -l | grep libsail (Debian/Ubuntu), rpm -qa | grep sail (Fedora/RHEL). Pour les builds statiques, chercher les symboles sail_* avec strings mon_binaire | grep sail_.
Un WAF peut-il bloquer l'exploitation via upload ?
Partiellement. Un WAF peut bloquer les uploads de fichiers PSD trop volumineux ou provenant de sources non authentifiées, mais il ne peut pas détecter la malformation fine de l'en-tête (channels=3, depth=16 dans un mode LAB) sans règle sur-mesure. La meilleure protection reste le patch + l'isolation du processus de parsing. Voir aussi CVE-2026-40175 Axios Prototype Pollution pour des limites similaires des WAF face aux exploits liés au parsing.
Les autres formats d'image supportés par SAIL sont-ils vulnérables ?
L'advisory pointe spécifiquement le codec PSD en mode LAB avec depth=16. Cependant, la logique de calcul de bpp à partir de channels * depth existe dans plusieurs codecs SAIL. Un audit de code publié par OffSeq Threat Radar recommande de considérer comme suspects les formats exotiques (TIFF LAB, EXR) jusqu'à confirmation par l'éditeur. À rapprocher de notre dossier CVE-2026-34621 Adobe Reader, qui illustre des patterns de corruption mémoire sur parsers de documents complexes.
Votre infrastructure est-elle exposée ?
Ayi NEDJIMI réalise des audits ciblés pour identifier et corriger vos vulnérabilités.
Demander un auditÀ propos de l'auteur
Ayi NEDJIMI
Auditeur Senior Cybersécurité & Consultant IA
Expert Judiciaire — Cour d'Appel de Paris
Habilitation Confidentiel Défense
ayi@ayinedjimi-consultants.fr
Ayi NEDJIMI est un vétéran de la cybersécurité avec plus de 25 ans d'expérience sur des missions critiques. Ancien développeur Microsoft à Redmond sur le module GINA (Windows NT4) et co-auteur de la version française du guide de sécurité Windows NT4 pour la NSA.
À la tête d'Ayi NEDJIMI Consultants, il réalise des audits Lead Auditor ISO 42001 et ISO 27001, des pentests d'infrastructures critiques, du forensics et des missions de conformité NIS2 / AI Act.
Conférencier international (Europe & US), il a formé plus de 10 000 professionnels.
Domaines d'expertise
Ressources & Outils de l'auteur
Testez vos connaissances
Mini-quiz de certification lié à cet article — propulsé par CertifExpress
Articles connexes
CVE-2026-40478 : bypass sandbox Thymeleaf vers SSTI (9.1)
Un caractère de tabulation suffit à contourner le sandbox d'expressions de Thymeleaf. CVE-2026-40478 (CVSS 9.1) ouvre la porte à une SSTI non authentifiée.
CVE-2026-3584 : RCE critique Kali Forms WordPress (9.8)
CVE-2026-3584 permet à un attaquant non authentifié d'exécuter du code sur tout site WordPress utilisant Kali Forms. Exploitation de masse en cours.
CVE-2026-34197 : RCE Apache ActiveMQ Jolokia ajoutée au KEV
Apache ActiveMQ Classic est concernée par la CVE-2026-34197, une RCE via l'API Jolokia (CVSS 8.8) ajoutée au KEV CISA après exploitation active confirmée.
Commentaires
Aucun commentaire pour le moment. Soyez le premier à commenter !
Laisser un commentaire