Skip to main content

libcaca EUVDEUVD-2026-29326

| CVE-2026-42046 HIGH
Heap-based Buffer Overflow (CWE-122)
2026-05-11 GitHub_M
7.8
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Craft malicious caca-format file with overflowing dimensions
  2. Delivery
    Deliver file to victim (email/web/download)
  3. Exploit
    Victim opens file in libcaca-backed app
  4. Execution
    Integer overflow yields undersized heap allocation
  5. Persist
    Controlled out-of-bounds heap write corrupts memory
  6. Impact
    Achieve code execution as the user

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Heap buffer bounds checking
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

Exploitation requires the victim to open or import an attacker-supplied file in libcaca's native "caca" canvas format through an application that uses libcaca's canvas import functionality; the malicious file must carry crafted width/height fields that overflow the signed-int size calculation in caca_resize(). Limiting factors: the CVSS vector is AV:L with UI:R, so this is not remotely triggerable without user interaction - the attacker cannot exploit a default network service, they must get a victim to process the file locally. Reliability of achieving code execution (versus a crash) further depends on build configuration and the heap allocator in use, as stated in the description, so successful RCE is not guaranteed across all deployments.

Impact

The CVSS 3.1 vector CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H (7.8, High) is internally consistent with a file-parsing bug: local attack vector, no privileges required, but mandatory user interaction (the victim must open a crafted caca file), yielding high confidentiality, integrity, and availability impact. Signals are aligned rather than conflicting: EPSS is low (0.06%, 20th percentile) and SSVC marks Exploitation as only "poc" and Automatable "no", which fits a client-side format-parsing vulnerability that requires social engineering and is not mass-scannable - so despite a High CVSS and "total" technical impact, real-world urgency is moderate, not critical. The main uplift is that a working proof-of-concept context exists (SSVC poc) and this is a known-incomplete-fix regression of CVE-2021-3410, meaning the code path is well-understood by researchers. There is no evidence of active exploitation (not in KEV), so this is a patch-on-normal-cycle item for most, prioritized higher where libcaca processes untrusted files automatically.

Exploit ScenarioDerived

An attacker crafts a malicious file in libcaca's "caca" canvas format with header dimensions chosen so width * height overflows a signed int, then delivers it via email, download, or a web page and lures a victim into opening it with a libcaca-backed viewer or media tool. On import, libcaca allocates an undersized heap buffer and then writes canvas data past its bounds, corrupting adjacent heap metadata; with a favorable allocator layout this can be steered toward code execution. Only proof-of-concept exploitation is reported (SSVC: poc) and no weaponized public exploit is identified at time of analysis.

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

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

Alert me

AnalysisAIv1 – Jul 23, 2026

Heap out-of-bounds write in libcaca 0.99.beta20 and earlier lets an attacker corrupt memory when a victim opens a maliciously crafted file in libcaca's native "caca" canvas format. An integer overflow in the canvas import/resize path (width * height) produces an undersized allocation followed by a controlled heap overflow, potentially enabling remote code execution depending on the build and allocator. This is a regression of CVE-2021-3410, whose original fix was incomplete; SSVC classifies exploitation as proof-of-concept with total technical impact, and EPSS is low at 0.06% - no public exploit identified at time of analysis and not on CISA KEV.

RemediationAI

Upstream fix available (commit fb77acff9ba6bb01d53940da34fb10f20b156a23); a released, tagged patched version is not independently confirmed from the provided data, so update to a distribution package or build that explicitly incorporates that commit - track the vendor advisory at https://github.com/cacalabs/libcaca/security/advisories/GHSA-4vvg-vrqv-m56w for the fixed release, and rebuild/redeploy any application statically or dynamically linking libcaca. Until a patched build is deployed, do not open caca-format files from untrusted sources and restrict applications from auto-processing untrusted caca canvases (the trade-off is loss of that import feature); where feasible, sandbox or run libcaca-consuming tools under seccomp/AppArmor and with a hardened allocator to raise the cost of heap corruption (this mitigates but does not eliminate the bug). Since libcaca is usually a transitive dependency, audit downstream software (media players, image converters) and update via your distribution's package manager once the fixed version lands.

Affected VersionsENISA

libcaca ≤ 0.99.beta20

Affected Packages

euvd libcaca no fix

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

libcaca (Colour AsCii Art library) renders graphics as ASCII/ANSI art and is embedded in media tooling and image viewers (e.g. mplayer/MPlayer, ImageMagick coders, and various terminal-graphics utilities) via its caca_import_* canvas functions. The root cause is CWE-122 (heap-based buffer overflow) driven by an integer overflow: in caca/canvas.c, caca_resize() computed new_size = width * height using signed int arithmetic and validated it with a check (new_size < 0 || new_size / width != height) that does not reliably catch overflow for attacker-controlled dimensions embedded in the caca file header. The patch (commit fb77acff) includes <limits.h> and replaces the flawed check with an overflow-safe guard (width != 0 && height > INT_MAX / width) evaluated before the multiplication, so an oversized geometry is rejected rather than wrapping to a small allocation that is then overflowed during import. The affected component is the CPE cpe:2.3:a:cacalabs:libcaca across all versions up to and including 0.99.beta20.

Know when Libcaca 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.8 HIGH
AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
vuln.today AI 7.8 HIGH

Local file must be opened by the victim so AV:L and UI:R with no privileges (PR:N); heap corruption enabling code execution justifies high C/I/A.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
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
High
Integrity
High
Availability
High

DescriptionCVE.org

libcaca is a colour ASCII art library. In 0.99.beta20 and earlier, an integer overflow vulnerability in libcaca's canvas import functionality allows an attacker to cause a controlled heap out-of-bounds write (heap overflow) by supplying a crafted file in the "caca" format. Depending on the build configuration and memory allocator, this may lead to memory corruption or remote code execution. This is the same vulnerability as CVE-2021-3410 but the fix at that time was not fully correct. Commit fb77acff9ba6bb01d53940da34fb10f20b156a23 fixes this vulnerability.

Executive ViewAI

Why It Matters

libcaca canvas file handling contains a heap overflow vulnerability (CVE-2026-42046, CVSS 7.8) affecting versions 0.99.beta20 and earlier, enabling memory corruption with potential for remote code execution when processing maliciously crafted files. Applications and systems using affected libcaca versions require immediate patching to eliminate code execution risk. This is a regression of a previously patched vulnerability, indicating incomplete prior remediation.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.1%
Top 80% exploitable
Prevalence
Medium
common Linux ASCII-art library, transitive dependency of media/image tools
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.1%
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

39
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +39
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.

A heap overflow occurs when a program writes data beyond the bounds of a buffer allocated in the heap memory region.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

CVE-2018-20549 HIGH POC
8.8 Dec 28

There is an illegal WRITE memory access at caca/file.c (function caca_file_read) in libcaca 0.99.beta19. Rated high seve

CVE-2018-20548 HIGH POC
8.8 Dec 28

There is an illegal WRITE memory access at common-image.c (function load_image) in libcaca 0.99.beta19 for 1bpp data. Ra

CVE-2018-20545 HIGH POC
8.8 Dec 28

There is an illegal WRITE memory access at common-image.c (function load_image) in libcaca 0.99.beta19 for 4bpp data. Ra

CVE-2018-20547 HIGH POC
8.1 Dec 28

There is an illegal READ memory access at caca/dither.c (function get_rgba_default) in libcaca 0.99.beta19 for 24bpp dat

CVE-2018-20546 HIGH POC
8.1 Dec 28

There is an illegal READ memory access at caca/dither.c (function get_rgba_default) in libcaca 0.99.beta19 for the defau

CVE-2021-30499 HIGH POC
7.8 May 27

A flaw was found in libcaca. Rated high severity (CVSS 7.8), this vulnerability is no authentication required, low attac

CVE-2021-30498 HIGH POC
7.8 May 26

A flaw was found in libcaca. Rated high severity (CVSS 7.8), this vulnerability is no authentication required, low attac

CVE-2021-3410 HIGH POC
7.8 Feb 23

A flaw was found in libcaca v0.99.beta19. Rated high severity (CVSS 7.8), this vulnerability is low attack complexity. P

CVE-2022-0856 MEDIUM POC
6.5 Mar 10

libcaca is affected by a Divide By Zero issue via img2txt, which allows a remote malicious user to cause a Denial of Ser

CVE-2018-20544 MEDIUM POC
6.5 Dec 28

There is floating point exception at caca/dither.c (function caca_dither_bitmap) in libcaca 0.99.beta19. Rated medium se

Vendor StatusVendor

SUSE

Severity: High
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise High Performance Computing 15 SP7 Fixed
SUSE Linux Enterprise Module for Basesystem 15 SP7 Fixed
SUSE Linux Enterprise Server 15 SP7 Fixed
SUSE Linux Enterprise Server 16.0 Fixed

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