Présentation

Le terme HEIF Heist désigne une classe d’attaques qui ciblent les services capables de décoder des images au format HEIF, HEIC ou AVIF. La faille repose sur les bibliothèques natives libheif et libde265, écrites en C/C++. En manipulant le flux d’un fichier image, un attaquant peut provoquer une corruption de mémoire, extraire des données sensibles ou déclencher une exécution de code à distance (RCE). Les chercheurs de Hacktron ont démontré des compromissions sur Slack, la suite produit de Meta, Discourse, Next.js, GitHub Enterprise (CVE‑2026‑19118) et plusieurs CMS.

Mécanisme technique

Les décodeurs analysent le conteneur ISO‑base Media File Format, qui comporte de nombreux champs de longueur variable. Une version non corrigée de libheif (familles 1.19.x, 1.20.x, 1.22.x, 1.23.x) ne valide pas correctement certaines structures de métadonnées, ce qui conduit à un dépassement de tampon ou à un usage après libération (use‑after‑free). L’exploit commence par le fingerprinting du serveur : l’attaquant envoie plusieurs images légèrement modifiées et observe les réponses (codes d’erreur, temps de traitement) afin d’identifier la version exacte du parseur. Une fois la version connue, il injecte un payload spécialement adapté qui écrase des pointeurs internes, redirige l’exécution vers du code contrôlé et obtient ainsi un shell sur le processus d’image.

Portée et impacts

Parce que libheif et libde265 sont souvent embarqués dans des wrappers haut niveau (ImageMagick, libvips, Sharp) ou dans des images de conteneurs standard, la surface d’exposition s’étend à de nombreux services web. Les compromissions observées incluent :

Leak de fichiers : extraction de documents stockés dans le même conteneur que le processus d’image.
Vol de jetons : récupération de tokens d’utilisateurs, de clés AWS ou de secrets d’application.
RCE authentifié ou non : sur Discourse (authentifié), Next.js (non authentifié) et GitHub Enterprise (authentifié).
Les tentatives d’exploitation ont parfois nécessité des milliers d’envois d’images, mais l’utilisation d’un modèle d’IA (GPT‑5.6 Sol) a réduit le cycle de développement du payload à 1‑3 jours.

Mesures de mitigation

Les correctifs recommandés consistent à mettre à jour les bibliothèques vers libheif v1.23.2 ou une version ultérieure et à installer la dernière version de libde265 via les canaux de sécurité de la distribution ou une compilation manuelle. Au‑delà du patch, les opérateurs doivent envisager de désactiver le décodage HEIF/AVIF lorsqu’il n’est pas indispensable et d’isoler les pipelines d’image dans des sandboxes éphémères (containers à privilèges limités, micro‑VM). La surveillance des journaux d’erreur du parseur et la mise en place de limites de taille d’image contribuent également à réduire le bruit d’attaque. Enfin, la communauté doit rester vigilante : la complexité du format ISO‑base et le rythme des mises à jour des décodeurs laissent présager de nouvelles vulnérabilités de type mémoire.