Impact
libsixel implements SIXEL encoding/decoding and contains an integer overflow in sixel_frame_convert_to_rgb888(). The overflow occurs when calculating allocation sizes for palettised images using int arithmetic. When the pixel count exceeds INT_MAX/4, the conversion buffer is undersized and a negative pointer offset is produced. The subsequent normalization function writes the entire image data starting from this invalid location, causing massive heap corruption. An attacker that can supply a crafted large palettised PNG can trigger the overflow, crash the process, and potentially execute arbitrary code.
Affected Systems
The vulnerability affects the libsixel library produced by saitoha. All releases up to and including version 1.8.7 are susceptible. The issue was fixed in version 1.8.7‑r1.
Risk and Exploitability
The CVSS score of 7.1 indicates a high severity of the exploit. EPSS data is not available, and the vulnerability is not listed in CISA’s KEV catalog, but the nature of the heap buffer overflow and reliance on user-supplied PNGs suggest a realistic exploitation path. Inferred attack vector: an adversary can deliver a specially crafted large palettised PNG to any process that uses libsixel to decode or encode images, leading to reliable crashes and a strong possibility of arbitrary code execution if the environment allows execution of malicious payloads.
OpenCVE Enrichment