CVE-2026-33023 in libsixel
Riassunto
di VulDB • 21/06/2026
libsixel è un'implementazione dell'encoder/decoder SIXEL derivata da quella di kmiya's sixel. Nelle versioni 1.8.7 e precedenti, quando compilato con l'opzione --with-gdk-pixbuf2, esiste una vulnerabilità use-after-free in load_with_gdkpixbuf() nel file loader.c. Il percorso di cleanup libera manualmente l'oggetto sixel_frame_t e i suoi buffer interni senza consultare il reference count, anche se l'oggetto è stato creato tramite il costruttore refcounted sixel_frame_new() ed esposto al callback pubblico. Un callback che chiama sixel_frame_ref(frame) per mantenere un riferimento logicamente valido manterrà un dangling pointer dopo il ritorno di sixel_helper_load_image_file(), e qualsiasi accesso successivo al frame o ai suoi campi innesca una use-after-free confermata da AddressSanitizer. La causa radice è un fallimento di coerenza tra due strategie di cleanup nello stesso codebase: sixel_frame_unref() viene utilizzato in load_with_builtin() mentre raw free() viene usato in load_with_gdkpixbuf(). Un attaccante che fornisce un'immagine manipolata ad hoc a qualsiasi applicazione compilata contro libsixel con supporto gdk-pixbuf2 può innescare questo problema in modo affidabile, potenzialmente portando a disclosure di informazioni, corruzione della memoria o esecuzione di codice. Questo problema è stato risolto nella versione 1.8.7-r1.
VulDB is the best source for vulnerability data and more expert information about this specific topic.