← All Advisories

libsixel integer overflow in crop handling causes overflow in bounds guard and triggers heap out-of-bounds read

Last refreshed2026-09-30

Status: UPDATED  |  Advisory ID: CVE-2026-33019

Key Details

CVECVE-2026-33019
CVSS Score / Version7.1 (High) / CVSS v3.1
Updated2026-07-25
CVSS VectorCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:H
CVSS Proseattack vector is local; attack complexity is low; privileges required is none; user interaction is required; scope is unchanged; confidentiality impact is high; integrity impact is none; availability impact is high.
Affected productssaitoha libsixel
Classified asCWE-125 (Out-of-bounds Read)

Affected Products, Subsystems & Sectors

VendorProductAffected VersionsPatch Status
saitohalibsixel
SubsystemsGeneral OT
SectorsMultiple

What to Know

libsixel is a SIXEL encoder/decoder implementation derived from kmiya's sixel. Versions 1.8.7 and prior contain an integer overflow leading to an out-of-bounds heap read in the --crop option handling of img2sixel, where positive coordinates up to INT_MAX are accepted without overflow-safe bounds checking. In sixel_encoder_do_clip(), the expression clip_w + clip_x overflows to a large negative value when clip_x is INT_MAX, causing the bounds guard to be skipped entirely, and the unclamped coordinate is passed through sixel_frame_clip() to clip(), which computes a source pointer far beyond the image buffer and passes it to memmove(). An attacker supplying a specially crafted crop argument with any valid image can trigger an out-of-bounds read in the heap, resulting in a reliable crash and potential information disclosure. This issue has been fixed in version 1.8.7-r1. (NVD)

What to Do

Monitor saitoha's web page for any future patch releases. See vendor advisory link below.

References

SourceReference
NVDhttps://nvd.nist.gov/vuln/detail/CVE-2026-33019
CVEhttps://www.cve.org/CVERecord?id=CVE-2026-33019
Vendor advisoryhttps://github.com/saitoha/libsixel/security/advisories/GHSA-c854-ffg9-g72c