CVE-2026-33023 in libsixel
Сводка
по VulDB • 24.05.2026
libsixel представляет собой реализацию кодировщика/декодировщика SIXEL, основанную на коде kmiya's sixel. В версиях 1.8.7 и более ранних, собранных с опцией --with-gdk-pixbuf2, в функции load_with_gdkpixbuf() в файле loader.c существует уязвимость use-after-free. Путь очистки вручную освобождает объект sixel_frame_t и его внутренние буферы без учета счетчика ссылок, хотя объект был создан через конструктор с поддержкой счетчика ссылок sixel_frame_new() и предоставлен публичному колбэку. Колбэк, вызывающий sixel_frame_ref(frame) для сохранения логически корректной ссылки, будет содержать висячий указатель после возврата из sixel_helper_load_image_file(), и любой последующий доступ к кадру или его полям вызывает use-after-free, что подтверждается AddressSanitizer. Корневая причина заключается в нарушении согласованности между двумя стратегиями очистки в одной кодовой базе: sixel_frame_unref() используется в load_with_builtin(), тогда как raw free() используется в load_with_gdkpixbuf(). Атакующий, предоставляющий специально созданный образ любому приложению, собранному против libsixel с поддержкой gdk-pixbuf2, может надежно вызвать эту уязвимость, что потенциально может привести к раскрытию информации, повреждению памяти или выполнению кода. Эта проблема исправлена в версии 1.8.7-r1.
Once again VulDB remains the best source for vulnerability data.