Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconCraft malicious SIXEL with overflow trigger
-
DeliverySocial engineer user to open file
-
ExploitUser processes SIXEL in libsixel application
-
InstallParser overflows pos_x calculation
-
C2Undersized buffer allocated
-
ExecuteOut-of-bounds heap write
-
ImpactCorrupt memory/execute code
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Integer overflow checks
MITRE ATT&CK
1 technique across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires user interaction to process attacker-supplied SIXEL data through libsixel decoding functions (UI:R in CVSS vector). Specifically exploitable when a user explicitly opens a malicious SIXEL file with img2sixel, cat/displays it in a SIXEL-capable terminal, or when an application automatically renders untrusted SIXEL content. Does not require authentication (PR:N). The vulnerability triggers in default configurations of libsixel with no special compilation flags or settings required. Exploitation is limited to local attack scenarios (AV:L): the attacker must deliver the malicious SIXEL file to the target system through local file access, social engineering, or as embedded content in documents/terminal sessions the user accesses. Not exploitable remotely without user downloading and opening the crafted file. The local vector and required user action significantly constrain automated exploitation compared to network-accessible vulnerabilities. |
| Impact | CVSS 7.1 (High) reflects significant impact (high integrity and availability loss) tempered by local attack vector and required user interaction. The AV:L/UI:R combination substantially limits exploitation scope compared to network-accessible vulnerabilities. Real-world risk depends heavily on deployment context: terminal emulators automatically rendering SIXEL from untrusted sources (rare in modern deployments) face higher risk than command-line utilities where users explicitly process files. The requirement for user interaction to open/process a malicious SIXEL file significantly reduces automated exploit potential. No EPSS score provided, but the local-only vector and user interaction requirement suggest low probability of mass exploitation. Not present in CISA KEV, indicating no confirmed active exploitation. The vulnerability's technical complexity is low (AC:L) once user interaction occurs, and the attacker-controlled offset in the heap write could enable reliable exploitation by skilled actors. Priority should be moderate: patch affected systems but exploitation requires social engineering to deliver malicious SIXEL files, limiting real-world attack surface compared to remotely exploitable flaws. |
| Exploit ScenarioDerived | An attacker crafts a malicious SIXEL image file with carefully calculated repeat_count values designed to trigger signed integer overflow when pos_x approaches INT_MAX during parsing. The attacker distributes this file via social engineering (email attachment, compromised download site, or malicious terminal output in shared environments). When a user opens the file with img2sixel or views it in a SIXEL-enabled terminal emulator, the parser overflows the buffer size calculation, allocates an undersized heap buffer, then writes attacker-controlled data at a computed offset beyond the allocation boundary. Depending on heap layout and overflow offset, this can corrupt adjacent heap metadata or function pointers, potentially achieving code execution with the privileges of the terminal emulator or utility process. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 14, 2026
Heap buffer overflow in libsixel versions up to 1.8.7-r1 enables local attackers to corrupt memory and potentially execute code by supplying maliciously crafted SIXEL image data. A signed integer overflow in the SIXEL parser's buffer resizing logic bypasses allocation size checks, allowing out-of-bounds writes with attacker-controlled offsets. The vulnerability requires user interaction to process a malicious SIXEL file but does not require authentication. Fixed in version 1.8.7-r2. No active exploitation confirmed (not in CISA KEV); public exploit code status unknown.
RemediationAI
Upgrade libsixel to version 1.8.7-r2 or later, which contains bounds validation to prevent the signed integer overflow in the SIXEL parser. Download from the official repository or use package manager updates when available. Vendor advisory with patch details: https://github.com/saitoha/libsixel/security/advisories/GHSA-9jm7-77gr-qghv. For systems where immediate patching is not feasible, implement defense-in-depth controls: configure terminal emulators to disable automatic SIXEL rendering from untrusted sources, restrict img2sixel and similar utilities to processing only trusted input files through access controls, and deploy application sandboxing (seccomp, AppArmor, or containers with limited heap permissions) to contain potential exploitation. Note that disabling SIXEL support entirely eliminates attack surface but breaks legitimate terminal graphics functionality. Input validation at the application layer (file size limits, rejecting SIXEL data from untrusted network sources) provides partial mitigation but cannot prevent exploitation if malicious files are explicitly opened by users.
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
SIXEL is a bitmap graphics format used in terminal emulators for inline image display. libsixel implements encoding and decoding of SIXEL data streams. The vulnerability (CWE-190: Integer Overflow or Wraparound) occurs in sixel_decode_raw_impl where context->pos_x increments by repeat_count for each SIXEL character without bounds validation. When pos_x approaches INT_MAX (2,147,483,647 on typical 32-bit signed integers), the expression 'pos_x + repeat_count' overflows, wrapping to a small or negative value. This corrupted result bypasses the buffer size check intended to prevent over-allocation. The subsequent memory write uses the overflowed value to calculate an offset into image->data, resulting in a heap buffer overflow with attacker-influenced displacement. Affects all callers processing untrusted SIXEL data, including the img2sixel utility and any applications embedding libsixel for terminal graphics rendering.
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:N/I:H/A:H
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
libsixel is a SIXEL encoder/decoder implementation derived from kmiya's sixel. From to 1.8.7-r1, a signed integer overflow in the SIXEL parser's image-buffer doubling loop can lead to an out-of-bounds heap write in sixel_decode_raw_impl. context->pos_x grows by repeat_count on every sixel character with no upper bound check. Once pos_x approaches INT_MAX, the expression "pos_x + repeat_count" used to size the image buffer overflows signed int. Depending on how the overflow wraps, the resize check that should reject oversized buffers can be bypassed, after which a subsequent write computes a large attacker-influenced offset into image->data and writes past the allocation. Reachable from any caller that decodes attacker-supplied SIXEL data, including img2sixel. This vulnerability is fixed in 1.8.7-r2.
Executive ViewAI
libsixel versions up to 1.8.7-r1 contain a heap buffer overflow vulnerability that allows local attackers to execute arbitrary code by processing maliciously crafted SIXEL image files. Organizations using libsixel in image processing pipelines, terminals, or applications that handle user-supplied image data face direct risk of system compromise through memory corruption attacks that require only file interaction, not privileged access.
No vendor-released patch identified at time of analysis for version 1.8.7-r1; however, vendor advisory indicates fix available in 1.8.7-r2. Until patching is possible: (1) Disable SIXEL image processing where operationally feasible; (2) Restrict user ability to supply arbitrary SIXEL files to applications using libsixel; (3) Implement strict input validation on image file sources; (4) Run image processing services in restricted privilege containers or sandboxes to limit code execution scope.
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.
Integer overflow occurs when an arithmetic operation produces a result that exceeds the maximum value a given integer type can store.
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-30412
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB