Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconCraft malicious --crop argument (x=INT_MAX)
-
DeliverySocial engineer victim to process image
-
ExploitTrigger integer overflow in clip_w+clip_x
-
InstallBypass bounds checking guard
-
C2Calculate out-of-bounds pointer in clip()
-
ExecuteExecute memmove() beyond heap buffer
-
ImpactCrash application and leak heap memory
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Local attacker provides crafted image file to victim who runs img2sixel with --crop option specifying positive integer coordinates near INT_MAX. Victim must execute the command locally. Affects libsixel versions ≤1.8.7. |
| Impact | Real-world exploitation risk is moderate-to-low despite the 7.1 CVSS score. The attack vector is local (AV:L) requiring an attacker to supply malicious --crop arguments to a victim who must actively process an image file (UI:R - user interaction required), significantly constraining the threat model compared to remotely exploitable vulnerabilities. The CVSS vector indicates no privileges required (PR:N) but mandates user participation, typical of command-line tool exploitation scenarios. Successful exploitation yields high confidentiality impact (C:H) through potential memory disclosure and high availability impact (A:H) via reliable crash, but no integrity impact (I:N). No CISA KEV listing confirms this is not observed in active exploitation campaigns. EPSS probability data is unavailable, but the local-only attack surface, requirement for social engineering to trick users into processing attacker-controlled crop parameters, and limited scope (S:U - unchanged scope) suggest this is lower priority than network-accessible vulnerabilities. Primary risk exists in automated image processing pipelines where untrusted crop parameters might be accepted, or in shared computing environments where local attackers have physical or session access. |
| Exploit ScenarioDerived | An attacker crafts a malicious command targeting a system administrator or automated image processing service, instructing them to convert a legitimate image file using img2sixel with a --crop argument specifying a malicious x-coordinate near INT_MAX (e.g., --crop=2147483647:0:100:100). When the victim executes the command, the integer overflow in sixel_encoder_do_clip() causes memmove() to read from unintended heap memory regions, crashing the application and potentially exposing sensitive data from adjacent memory allocations through core dumps or error messages. In shared hosting or multi-user environments, local attackers with shell access could exploit this to crash services or extract memory contents from processes running with elevated privileges. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Apr 14, 2026
Out-of-bounds heap read in libsixel img2sixel via integer overflow allows local attackers to crash the application and potentially leak sensitive memory contents when processing malicious --crop arguments with otherwise valid images. Affects libsixel 1.8.7 and earlier; patched in 1.8.7-r1. EPSS data not available, but exploitation requires local access with user interaction (CVSS AV:L/UI:R). No CISA KEV listing; no public exploit identified at time of analysis.
RemediationAI
Vendor-released patch: libsixel version 1.8.7-r1 contains the fix for this integer overflow vulnerability. Users should immediately upgrade to libsixel 1.8.7-r1 or later, available from the official GitHub releases page at https://github.com/saitoha/libsixel/releases/tag/v1.8.7-r1. For environments where immediate patching is not feasible, implement input validation to reject --crop arguments with coordinates approaching INT_MAX, or restrict img2sixel usage to trusted input sources only. Organizations using libsixel in automated processing pipelines should sanitize crop parameters from untrusted sources and consider sandboxing img2sixel execution to contain potential information disclosure. Review the vendor security advisory at https://github.com/saitoha/libsixel/security/advisories/GHSA-c854-ffg9-g72c for additional technical details and upgrade guidance.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
libsixel is a SIXEL image format encoder/decoder library derived from kmiya's sixel implementation, commonly used for terminal graphics rendering. The vulnerability exists in the img2sixel command-line utility's --crop option parser within sixel_encoder_do_clip(). When processing crop coordinates, the code accepts positive integers up to INT_MAX without overflow-safe validation. The expression 'clip_w + clip_x' triggers signed integer overflow when clip_x approaches INT_MAX, wrapping to a large negative value that bypasses bounds checking guards. This corrupted coordinate propagates through sixel_frame_clip() to clip(), which calculates a source pointer extending far beyond the allocated heap buffer boundaries before passing it to memmove(). The root cause is CWE-125 (Out-of-bounds Read) enabled by inadequate integer overflow protection in arithmetic operations involving user-controlled crop coordinates.
Know when Libsixel gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:H
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
4DescriptionCVE.org
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.
Executive ViewAI
libsixel img2sixel versions 1.8.7 and earlier contain an integer overflow vulnerability that allows local users to crash the application or potentially access sensitive memory when processing specially crafted image files. Organizations using libsixel for image conversion workflows face service disruption and potential data exposure risks, particularly in systems processing untrusted image content or where local user access is available.
Apply vendor patch. If immediate patching is not feasible, restrict local user access to img2sixel functionality, disable processing of image files from untrusted sources, and implement application sandboxing or containerization to limit memory access exposure.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
An issue was discovered in libsixel 1.8.4. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable, n
An issue was discovered in libsixel 1.8.4. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable, n
libsixel 1.8.4 has an integer overflow in sixel_frame_resize in frame.c. Rated high severity (CVSS 8.8), this vulnerabil
libsixel 1.10.0 is vulnerable to Use after free in libsixel/src/dither.c:379. Rated high severity (CVSS 8.8), this vulne
Libsixel 1.8.3 contains a heap-based buffer overflow in the sixel_encode_highcolor function in tosixel.c. Rated high sev
Libsixel 1.8.2 contains a heap-based buffer overflow in the dither_func_fs function in tosixel.c. Rated high severity (C
An issue was discovered in libsixel 1.8.2. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable, n
stb_image.h (aka the stb image loader) 2.23, as used in libsixel and other products, has a heap-based buffer over-read i
libsixel before 1.10 is vulnerable to Buffer Overflow in libsixel/src/quant.c:867. Rated high severity (CVSS 8.8), this
libsixel 1.8.6 is affected by Buffer Overflow in libsixel/src/quant.c:876. Rated high severity (CVSS 8.8), this vulnerab
libsixel 1.8.6 suffers from a Heap Use After Free vulnerability in in libsixel/src/dither.c:388. Rated high severity (CV
In libsixel v1.8.2, there is a heap-based buffer over-read in the function load_jpeg() in the file loader.c, as demonstr
EUVD-2026-22742
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB