Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAttacker gains local system access
-
DeliveryIdentifies libsixel-using application
-
ExploitTriggers memory pressure on system
-
InstallSupplies crafted SIXEL input to decoder
-
C2malloc fails during buffer allocation
-
ExecuteNULL pointer check passes incorrectly
-
ImpactProcess dereferences NULL pointer
-
Step 8Application crashes (DoS)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Null pointer safety, defensive checks
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires concurrent low-memory conditions (malloc returning NULL) at the moment sixel_decode_raw or sixel_decode is invoked with untrusted SIXEL data. The vulnerability is local-only (AV:L from CVSS vector); remote exploitation would require a remote attacker to trigger decoding on a local system via an application that accepts SIXEL input over the network (e.g., a web terminal or SSH session). High attack complexity (AC:H) is inherent because reliably triggering memory exhaustion alongside API invocation is difficult; systems with adequate memory will not encounter this path. User interaction (UI:R) is required, meaning the user must explicitly open or process a SIXEL image or the application must automatically decode untrusted SIXEL content. No special product configuration is required-the vulnerable code path exists in default libsixel builds. The limiting factors are the local-only attack vector and the practical difficulty of engineering simultaneous memory exhaustion. |
| Impact | This vulnerability presents low real-world risk despite its denial-of-service classification. The CVSS 2.5 score reflects the limited practical impact: exploitation requires local access (AV:L), high attack complexity (AC:H), no privileges (PR:N), and user interaction (UI:R), meaning an attacker must already have local system access and trigger the vulnerable code path under specific memory-constrained conditions. The EPSS score is not provided, but exploitation likelihood is constrained by the requirement to engineer memory exhaustion simultaneously with libsixel API invocation-a difficult practical scenario outside controlled environments. No KEV status or public POC is indicated, suggesting no active exploitation in the wild. The vulnerability is primarily a reliability concern rather than a security threat; it is more likely to occur as a crash from legitimate low-memory conditions (resource exhaustion, swap depletion) than from deliberate attack. Systems with sufficient memory headroom or memory management policies will rarely encounter this failure path. |
| Exploit ScenarioDerived | A local attacker with command-line or application-level access to a system running libsixel-dependent software (e.g., a terminal emulator or image viewer) supplies a SIXEL-formatted image to be decoded while the system is under memory pressure. When the libsixel decoder attempts to allocate buffers for the image data and malloc fails due to exhausted memory, the incorrect NULL check allows the function to proceed and write through a NULL pointer, crashing the decoding process and potentially rendering the application or service unusable. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 14, 2026
libsixel versions prior to 1.8.7-r2 crash on memory allocation failure in sixel_decode_raw and sixel_decode functions due to incorrect NULL pointer validation, allowing local attackers to trigger denial of service under low-memory conditions. The vulnerability affects any application using libsixel's public decoding APIs when system memory pressure causes malloc to fail.
RemediationAI
Upgrade libsixel to version 1.8.7-r2 or later, which includes the corrected NULL pointer validation in sixel_decode_raw and sixel_decode functions. For systems unable to immediately upgrade, no effective workaround exists at the library level since the vulnerability is intrinsic to the API implementation. Mitigation strategies include configuring memory limits via cgroups or ulimit to gracefully prevent malloc failures (trade-off: may cause legitimate out-of-memory errors to surface earlier), using memory monitoring tools to maintain sufficient headroom above libsixel's allocation requirements, or restricting libsixel API usage to trusted inputs within memory-constrained environments. Consult https://github.com/saitoha/libsixel/security/advisories/GHSA-wpx3-h5g8-qr3w for patch availability and release notes.
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 encoder/decoder library that processes SIXEL graphics format data. SIXEL is a text-based graphics protocol commonly used in terminal emulators. The vulnerability exists in the sixel_decode_raw and sixel_decode functions, which allocate memory buffers for decoded image output. The root cause is CWE-476 (NULL Pointer Dereference): after calling malloc to allocate output buffers, the code incorrectly validates the allocation result by checking the address of the output parameter (which is a pointer passed by the caller and is always non-NULL) instead of checking the return value of malloc itself. When malloc returns NULL due to memory exhaustion, the null check passes incorrectly, and the function proceeds to dereference and write through the NULL pointer, causing a process crash.
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:H/PR:N/UI:R/S:U/C:N/I:N/A:L
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
Lifecycle Timeline
2DescriptionNVD
libsixel is a SIXEL encoder/decoder implementation derived from kmiya's sixel. From to 1.8.7-r1, a wrong NULL check after an allocation call in sixel_decode_raw and sixel_decode causes a NULL pointer dereference whenever the allocation fails. The check tests the address of the output parameter (always non-NULL) instead of the value the malloc returned. On allocation failure, the function continues and writes through a NULL pointer, crashing the process. This is a denial of service against any caller of these public APIs that hits a low-memory condition. This vulnerability is fixed in 1.8.7-r2.
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 null pointer dereference occurs when a program attempts to access memory through a pointer that has been set to NULL (address 0x0).
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
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-30411
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB