Skip to main content

Libsixel CVE-2026-33019

| EUVDEUVD-2026-22742 HIGH
Out-of-bounds Read (CWE-125)
2026-04-14 security-advisories@github.com
7.1
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Craft malicious --crop argument (x=INT_MAX)
  2. Delivery
    Social engineer victim to process image
  3. Exploit
    Trigger integer overflow in clip_w+clip_x
  4. Install
    Bypass bounds checking guard
  5. C2
    Calculate out-of-bounds pointer in clip()
  6. Execute
    Execute memmove() beyond heap buffer
  7. Impact
    Crash 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

libsixel < 1.8.7-r1

Affected Packages

euvd libsixel fix: 1.8.7-r1

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

Vendor (github) PRIMARY 7.1 HIGH
AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:H
SUSE HIGH
Red Hat 7.1 MEDIUM

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
High

Lifecycle Timeline

4
Patch released
Apr 23, 2026 - 14:47 nvd
Patch available
Analysis Updated
Apr 16, 2026 - 05:56 EUVD-patch-fix
executive summary
Patch available
Apr 16, 2026 - 05:29 EUVD
1.8.7-r1
CVE Published
Apr 14, 2026 - 22:16 nvd
HIGH 7.1

DescriptionCVE.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

Why It Matters

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.

Business Impact: Medium
Compensating Controls

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

EPSS Score
0.0%
Top 98% exploitable
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact
Medium
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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.

CVE-2019-20140 HIGH POC
8.8 Dec 30

An issue was discovered in libsixel 1.8.4. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable, n

CVE-2019-20094 HIGH POC
8.8 Dec 30

An issue was discovered in libsixel 1.8.4. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable, n

CVE-2019-20205 HIGH POC
8.8 Jan 02

libsixel 1.8.4 has an integer overflow in sixel_frame_resize in frame.c. Rated high severity (CVSS 8.8), this vulnerabil

CVE-2021-41715 HIGH POC
8.8 Apr 08

libsixel 1.10.0 is vulnerable to Use after free in libsixel/src/dither.c:379. Rated high severity (CVSS 8.8), this vulne

CVE-2020-21548 HIGH POC
8.8 Sep 17

Libsixel 1.8.3 contains a heap-based buffer overflow in the sixel_encode_highcolor function in tosixel.c. Rated high sev

CVE-2020-21547 HIGH POC
8.8 Sep 17

Libsixel 1.8.2 contains a heap-based buffer overflow in the dither_func_fs function in tosixel.c. Rated high severity (C

CVE-2019-19778 HIGH POC
8.8 Dec 13

An issue was discovered in libsixel 1.8.2. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable, n

CVE-2019-19777 HIGH POC
8.8 Dec 13

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

CVE-2021-40656 HIGH POC
8.8 Apr 08

libsixel before 1.10 is vulnerable to Buffer Overflow in libsixel/src/quant.c:867. Rated high severity (CVSS 8.8), this

CVE-2022-27044 HIGH POC
8.8 Apr 08

libsixel 1.8.6 is affected by Buffer Overflow in libsixel/src/quant.c:876. Rated high severity (CVSS 8.8), this vulnerab

CVE-2022-27046 HIGH POC
8.8 Apr 08

libsixel 1.8.6 suffers from a Heap Use After Free vulnerability in in libsixel/src/dither.c:388. Rated high severity (CV

CVE-2019-3574 HIGH POC
7.8 Jan 02

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

Vendor StatusVendor

SUSE

Severity: High

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy