Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver crafted XBIN file to target app
-
ExploitSet 512-char flag without custom-font flag
-
Executiondrawchar() dereferences NULL high_font_data_xbin
-
ImpactProcess 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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
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
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
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.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
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
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.
More in Libansilove
View allAn out-of-bounds read in libansilove through 1.4.2 lets a crafted compressed XBIN file, particularly one whose run-lengt
The ansilove_ansi function in loaders/ansi.c in libansilove 1.0.0 allows remote attackers to cause a denial of service (
EUVD-2026-102271
NVD
CVE.org
EPSS
GitHub
Exploit-DB