Skip to main content

libansilove EUVDEUVD-2026-102271

| CVE-2026-111144 MEDIUM
NULL Pointer Dereference (CWE-476)
2026-10-15 VulnCheck
6.8
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Deliver crafted XBIN file to target app
  2. Exploit
    Set 512-char flag without custom-font flag
  3. Execution
    drawchar() dereferences NULL high_font_data_xbin
  4. Impact
    Process terminates (denial of service)

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 an application built on libansilove 1.3.0-1.4.2 to parse an attacker-supplied XBIN file in which the 512-character flag is set while the custom-font (palette/font) flag is NOT set; this specific combination leaves high_font_data_xbin NULL, and drawchar() then dereferences it. Limiting factors: the vector is local/file-based (AV:L) and requires the target application or user to actually process the malicious file (UI:P) - there is no self-propagating or unauthenticated-network path from the library itself. Impact is confined to a crash of the consuming process (availability only); it does not yield code execution, data disclosure, or data modification. Real-world exposure therefore depends on whether the embedding application accepts untrusted XBIN input (e.g. an automated art-conversion or upload-rendering service).

Impact

This is a denial-of-service-only flaw whose real-world priority is modest despite a mid-range 6.8 CVSS 4.0 score. The vector (CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H) shows the sole impact is availability (VA:H) - a process crash via NULL pointer dereference (CWE-476) - with no confidentiality or integrity consequence (VC:N/VI:N). The attack is local (AV:L) and requires passive user interaction (UI:P), meaning a victim application must be fed an attacker-crafted XBIN file; it cannot be triggered unauthenticated over the network by itself. Public exploit code exists (referenced VulnCheck advisory and hackmd write-up), which raises reproducibility, but this is NOT confirmed active exploitation - the CVE is not listed in CISA KEV and no EPSS score was provided in the input, so widespread opportunistic abuse is unsubstantiated. Signals are internally consistent: low-complexity crash, POC available, but bounded to a crash rather than RCE. Net: a legitimate bug to patch, but not an emergency - priority is driven by how the embedding application exposes XBIN parsing (e.g. an automated rendering service processing untrusted uploads) rather than by the library flaw in isolation.

Exploit ScenarioDerived

An attacker crafts a malicious XBIN file with the 512-character flag set but the custom-font flag cleared, then delivers it to a service or user that renders it with libansilove (e.g. an ANSI-art rendering pipeline or upload processor). When ansilove_xbin() parses the file, drawchar() indexes a NULL high_font_data_xbin pointer and the process terminates, causing a denial of service. A public proof-of-concept and technical write-up are available, lowering the barrier to reproduction.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 15, 2026

Denial of service in libansilove 1.3.0 through 1.4.2 lets a crafted XBIN file crash any application that parses it: setting the 512-character font flag while leaving the custom-font flag unset leaves the internal high_font_data_xbin pointer NULL, and drawchar() then dereferences it and terminates the process. The flaw is reachable by unauthenticated remote attackers (CVSS PR:N) but is file-based and local in nature (AV:L) and only triggers when the target application actually processes the malformed file (UI:P), so impact is confined to availability - no code execution, data disclosure, or data modification. Publicly available exploit code exists (proof-of-concept write-up published), and the 6.8 CVSS 4.0 base score overstates real-world urgency: practical exposure depends entirely on whether an embedding application accepts untrusted XBIN input, and active exploitation is not confirmed.

RemediationAI

No vendor-released patch or fixed version is identified in the available data - the referenced GitHub links point to the vulnerable source lines (xbin.c loader and drawchar.c) rather than to a tagged fix, so treat all 1.3.0-1.4.2 builds as unpatched and track the upstream repository (https://github.com/ansilove/libansilove) plus the VulnCheck advisory for a corrected release. Until then, the most effective compensating control is to stop feeding untrusted XBIN data into the library: either block or reject XBIN uploads/filenames at the application boundary and restrict supported formats to ANSI, PCBoard or Artworx, at the cost of losing XBIN conversion for legitimate users. If XBIN support is required, add a pre-parse validation layer that rejects any file whose header sets the 512-character font flag without the custom-font flag, or backport a NULL guard in the drawchar()/high_font_data_xbin path - this is a targeted code change with low regression risk but must be maintained against upstream. Because the impact is availability-only, process-level isolation is a practical stopgap: run the converter in a separate unprivileged process, container, or worker with CPU/memory limits and automatic restart (for example ulimit plus supervisor or a sandboxed service account), which preserves functionality but adds operational overhead and does not fix the underlying bug. Finally, monitor conversion workers for repeated abrupt crashes as an indicator that malicious XBIN files are being submitted, and consult https://www.vulncheck.com/advisories/libansilove-1.3.0-through-1.4.2-null-pointer-dereference-via-ansilove-xbin for updated patch guidance.

Affected VersionsENISA

libansilove 1.3.0 ≤1.4.2

Affected Packages

euvd libansilove 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

libansilove is the core rendering library behind the ANSiLove toolset, used to convert legacy ANSI/ASCII art formats - including XBIN, ANSI, PCBoard and Artworx - into images, and it is embedded by third-party art viewers, BBS utilities, and upload/conversion services. The vulnerability is a classic CWE-476 NULL pointer dereference in the XBIN loader: src/loaders/xbin.c (referenced lines 119-166 and 224-232) parses the XBIN header flags, where the '512-character font' bit and the 'custom font present' bit are independent. When the former is set without the latter, the loader never allocates or assigns high_font_data_xbin, yet later selects the 'high font' code path; src/drawchar.c (lines 28-35) then indexes that NULL pointer when rendering a character, causing a segmentation fault. The CPE cpe:2.3:a:ansilove:libansilove:*:*:*:*:*:*:*:* confirms every version in the 1.3.0-1.4.2 range is affected with no version constraint, and the same advisory notes a related out-of-bounds read in the XBIN RLE decoding path, indicating the XBIN parser's flag/state handling is the weak point. Because the crash occurs inside the library, the severity is inherited by every consuming application rather than by libansilove itself.

Know when Libansilove 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 (VulnCheck) PRIMARY 6.8 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 5.5 MEDIUM

File must be supplied to and opened by the consuming app, so AV:L and UI:R; no privileges needed (PR:N), and the only impact is a crash, so C:N/I:N/A:H.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

libansilove 1.3.0 through 1.4.2 contains a NULL pointer dereference vulnerability in ansilove_xbin() that allows attackers to crash applications by supplying a crafted XBIN file. Attackers can set the 512-character flag without the custom-font flag, causing drawchar() to index a NULL high_font_data_xbin pointer and terminate the process.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Low
niche ANSI/ASCII-art rendering library, limited enterprise footprint
Exploit
POC
Public exploit code exists
Data Quality
5 sources
Confidence: Medium

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 MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

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.

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