CVE-2026-33020 Details
Description
libsixel is a SIXEL encoder/decoder implementation derived from kmiya's sixel. Versions 1.8.7 and prior contain an integer overflow which leads to a heap buffer overflow via sixel_frame_convert_to_rgb888() in frame.c, where allocation size and pointer offset computations for palettised images (PAL1, PAL2, PAL4) are performed using int arithmetic before casting to size_t. For images whose pixel count exceeds INT_MAX / 4, the overflow produces an undersized heap allocation for the conversion buffer and a negative pointer offset for the normalization sub-buffer, after which sixel_helper_normalize_pixelformat() writes the full image data starting from the invalid pointer, causing massive heap corruption confirmed by ASAN. An attacker providing a specially crafted large palettised PNG can corrupt the heap of the victim process, resulting in a reliable crash and potential arbitrary code execution. This issue has been fixed in version 1.8.7-r1.
A heap buffer overflow vulnerability has been identified in libsixel versions through 1.8.7. The issue arises from an integer overflow in the function sixel_frame_convert_to_rgb888() within frame.c. This vulnerability specifically affects palettised images (PAL1, PAL2, PAL4) with dimensions that cause the pixel count to exceed INT_MAX divided by 4. The overflow results in an inadequate heap allocation for the image conversion buffer and a negative pointer offset for the normalization sub-buffer. Consequently, the function sixel_helper_normalize_pixelformat() writes image data from the invalid pointer, leading to significant heap corruption, as confirmed by AddressSanitizer. An attacker can exploit this vulnerability by providing a specially crafted large palettised PNG, causing the victim process to crash and potentially allowing for arbitrary code execution.
Users can upgrade to libsixel version 1.8.7-r1 to address this vulnerability.
Metrics
CVSS 4.0 Severity and Vector Strings:
No CVSS 4.0 data is available for this CVE.
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
CISA-ADP
Assessed Apr 15, 2026References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://github.com/saitoha/libsixel/security/advisories/GHSA-2xgm-4x47-2x2p | CISA-ADP | ExploitVendor Advisory |
| https://github.com/saitoha/libsixel/releases/tag/v1.8.7-r1 | [email protected] | Release Notes |
| https://github.com/saitoha/libsixel/security/advisories/GHSA-2xgm-4x47-2x2p | [email protected] | ExploitVendor Advisory |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-122 | Heap-based Buffer Overflow | [email protected] |
| CWE-190 | Integer Overflow or Wraparound | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| saitoha libsixel | < 1.8.7-r1 |
CPE
Remediation
| |
Change History
6 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Jul 25, 2026 | CVE Translated | [email protected] |
| Jun 17, 2026 | CVE Modified | [email protected] |
| Jun 17, 2026 | CVE Modified | CISA-ADP |
| Apr 23, 2026 | Initial Analysis | [email protected] |
| Apr 15, 2026 | CVE Modified | CISA-ADP |
| Apr 14, 2026 | New CVE Received | [email protected] |