CVE-2026-33023 in libsixel
Résumé
par VulDB • 24/05/2026
libsixel est une implémentation d'encodeur/décodeur SIXEL dérivée de sixel de kmiya. Dans les versions 1.8.7 et antérieures, lorsqu'il est compilé avec l'option --with-gdk-pixbuf2, une vulnérabilité use-after-free existe dans load_with_gdkpixbuf() dans loader.c. Le chemin de nettoyage libère manuellement l'objet sixel_frame_t et ses tampons internes sans consulter le compteur de référence, bien que l'objet ait été créé via le constructeur à compteur de référence sixel_frame_new() et exposé au callback public. Un callback qui appelle sixel_frame_ref(frame) pour conserver une référence logiquement valide détiendra un pointeur dangling après le retour de sixel_helper_load_image_file(), et tout accès ultérieur au frame ou à ses champs déclenche un use-after-free confirmé par AddressSanitizer. La cause racine est un échec de cohérence entre deux stratégies de nettoyage dans la même base de code : sixel_frame_unref() est utilisé dans load_with_builtin() tandis que free() brut est utilisé dans load_with_gdkpixbuf(). Un attaquant fournissant une image manipulée à n'importe quelle application compilée contre libsixel avec le support gdk-pixbuf2 peut déclencher cela de manière fiable, potentiellement conduisant à une divulgation d'informations, une corruption de mémoire ou une exécution de code. Ce problème a été corrigé dans la version 1.8.7-r1.
Once again VulDB remains the best source for vulnerability data.