CVE-2026-33020: saitoha libsixel heap overflow in sixel_frame_convert_to_rgb888

CVE-2026-33020 · Severity: high · CVSS 7.1 · Published 2026-04-14

libsixel is a software library used to encode and decode images into the SIXEL format, often used for displaying graphics in terminal environments. A vulnerability exists where processing a specially crafted, large image file can cause the application to crash or allow an attacker to execute unauthorized code. This occurs when the library incorrectly calculates memory requirements for high-resolution images, leading to memory corruption.

Technologies: Saitoha Libsixel. Vendors: Saitoha.

Quick answers

Is CVE-2026-33020 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-33020 being exploited in the wild.
How severe is CVE-2026-33020?
High severity, with a CVSS score of 7.1, published 14 April 2026.
Which products and versions are affected?
Saitoha Libsixel <= 1.8.7.
Is there a fix for CVE-2026-33020?
A patch was published on 2026-04-14: Fixed in version 1.8.7-r1 Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-33020 attacked?
It is attacked with local access, in a software library.
Am I affected by CVE-2026-33020?
Check whether you run Saitoha Libsixel at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

Technical details

An integer overflow exists in the `sixel_frame_convert_to_rgb888()` function within `frame.c`. When processing palettized images (PAL1, PAL2, PAL4), the library performs allocation size and pointer offset calculations using 32-bit integer arithmetic before casting the result to `size_t`. If an image's pixel count exceeds INT_MAX / 4, the calculation wraps around, resulting in an undersized heap allocation and a negative pointer offset. Subsequently, `sixel_helper_normalize_pixelformat()` writes image data to this invalid memory location, causing massive heap corruption. Exploitation requires a user to open a specially crafted PNG file using an application linked against the vulnerable library. The issue is fixed in version 1.8.7-r1.

Affected products

  • saitoha libsixel <= 1.8.7

Timeline

  • 2026-04-14: disclosed
  • 2026-04-14: patched: Fixed in version 1.8.7-r1
  • 2026-04-14: advisory

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.