Skip to main content

libsixel CVE-2026-44637

| EUVDEUVD-2026-30412 HIGH
Integer Overflow or Wraparound (CWE-190)
2026-05-14 GitHub_M
7.1
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Recon
    Craft malicious SIXEL with overflow trigger
  2. Delivery
    Social engineer user to open file
  3. Exploit
    User processes SIXEL in libsixel application
  4. Install
    Parser overflows pos_x calculation
  5. C2
    Undersized buffer allocated
  6. Execute
    Out-of-bounds heap write
  7. Impact
    Corrupt 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.

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

libsixel 0.11.0, < 1.8.7-r2

Affected Packages

euvd libsixel_0_11_0 fix: 1.8.7-r2

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

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
May 14, 2026 - 21:32 EUVD
CVE Published
May 14, 2026 - 20:02 nvd
HIGH 7.1

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

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

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
High
Technical Impact
Total

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.

Integer overflow occurs when an arithmetic operation produces a result that exceeds the maximum value a given integer type can store.

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