CVE-2026-33023: libsixel: Use-after-free in load_with_gdkpixbuf()
libsixel is a SIXEL encoder/decoder implementation derived from kmiya's sixel. In versions 1.8.7 and prior, when built with the --with-gdk-pixbuf2 option, a use-after-free vulnerability exists in loadwithgdkpixbuf() in loader.c. The cleanup path manually frees the sixelframet object and its internal buffers without consulting the reference count, even though the object was created via the refcounted constructor sixelframenew() and exposed to the public callback. A callback that calls sixelframeref(frame) to retain a logically valid reference will hold a dangling pointer after sixelhelperloadimagefile() returns, and any subsequent access to the frame or its fields triggers a use-after-free confirmed by AddressSanitizer. The root cause is a consistency failure between two cleanup strategies in the same codebase: sixelframeunref() is used in loadwithbuiltin() but raw free() is used in loadwithgdkpixbuf(). An attacker supplying a crafted image to any application built against libsixel with gdk-pixbuf2 support can trigger this reliably, potentially leading to information disclosure, memory corruption, or code execution. This issue has been fixed in version 1.8.7-r1.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
libsixelto a version that resolves this vulnerability.Fixed in 1.8.7-r1
Event History
Frequently Asked Questions
What is the severity of CVE-2026-33023?
CVE-2026-33023 has been classified as a medium severity vulnerability due to the potential for exploitation leading to arbitrary code execution.
How do I fix CVE-2026-33023?
To fix CVE-2026-33023, upgrade to libsixel version 1.8.8 or later, which resolves the use-after-free vulnerability.
What systems are affected by CVE-2026-33023?
CVE-2026-33023 affects libsixel versions 1.8.7 and prior when built with the --with-gdk-pixbuf2 option.
Can CVE-2026-33023 be exploited remotely?
Yes, CVE-2026-33023 can potentially be exploited remotely if an attacker is able to manipulate user input processed by the affected libsixel library.
What is the nature of the vulnerability in CVE-2026-33023?
CVE-2026-33023 is a use-after-free vulnerability, which occurs when a program attempts to access memory that has already been freed.