Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver crafted XML with 63-digit REAL value
-
DeliveryApplication parses it under non-'.' locale
-
ExploitTrigger off-by-one in mxml_strtod()
-
ExecutionWrite NUL byte past 64-byte stack buffer
-
ImpactCorrupt stack or crash process
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Off-by-one prevention
|
| Exploitation Conditions | Exploitation requires that the host process runs under a C locale whose decimal point is NOT '.' (e.g., de_DE, fr_FR, or any comma-decimal locale) - in a default 'C'/en_US locale the vulnerable branch is not reached. The application must then parse attacker-controlled XML containing a REAL numeric value of exactly 63 digits immediately followed by a '.' character, which drives mxml_strtod()'s decimal-point substitution logic to write one byte past its 64-byte stack buffer. Limiting factors: the non-default locale precondition, the requirement that the attacker's data reaches the XML parser (UI:P / local delivery), and the single-byte NUL overwrite that constrains impact mostly to crashes or minor stack corruption rather than reliable control-flow hijack. |
| Impact | All available signals point to a low real-world priority. The vendor-assigned CVSS 4.0 base score is only 2.0, consistent with a vector that requires local attack delivery (AV:L), a non-default attack requirement (AT:P - the process locale's decimal point must not be '.'), passive user interaction (UI:P), and yields only limited integrity and availability impact (VI:L/VA:L) with no confidentiality loss - matching an off-by-one that writes a single NUL byte past a 64-byte stack buffer (CWE-193). No EPSS score, KEV listing, or SSVC decision data was provided, so probabilistic exploitation and automatability cannot be weighed; absence of these is not evidence of safety but does mean there is no signal of mass exploitation. There is no indication of active exploitation and no POC flag in the input, though a detailed public technical write-up by the reporting researcher is referenced, which lowers the research bar for a working trigger. The realistic worst case is a denial of service (process crash) or localized stack corruption rather than reliable code execution, since only one NUL byte is written out of bounds. Net: a genuine but minor bug - patch in routine maintenance cycles, not an emergency. |
| Exploit ScenarioDerived | An application linked against Mini-XML 4.0.0-4.0.6 runs in a locale whose decimal separator is not '.' (e.g., de_DE, fr_FR) and parses attacker-controlled XML. The attacker submits a REAL value consisting of 63 digits followed by '.', causing mxml_strtod() to write a terminating NUL one byte past its 64-byte stack buffer, typically crashing the process or corrupting adjacent stack memory. No weaponized exploit is published, but a public technical write-up documenting the flaw exists. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
An off-by-one stack out-of-bounds write in Mini-XML 4.0.0 through 4.0.6 lets an attacker who can supply crafted XML corrupt or crash a parsing application, but only when the host process runs under a locale whose decimal separator is not '.'. Supplying a REAL value of exactly 63 digits immediately followed by '.' drives mxml_strtod()'s decimal-point substitution logic to write a NUL byte one position past its 64-byte stack buffer (CWE-193), corrupting adjacent stack memory. No public exploit identified at time of analysis; independent assessment rates this CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:L (CVSS 4.0 base score 2.0), so all available signals point to a low real-world priority.
RemediationAI
Vendor-released patch: upgrade to Mini-XML 4.0.7 (or later), which fixes the numeric overflow, per the CHANGES.md entry in upstream fix commit 367c7ddd3387f65e867d776216de274bcaa3dae1 (https://github.com/michaelrsweet/mxml/commit/367c7ddd3387f65e867d776216de274bcaa3dae1); that commit changes the mxml_strtod() bound check to 'sizeof(temp) - 1 - (tempptr - temp)' so room is reserved for the terminating NUL. If upgrading immediately is not possible, the most effective compensating control is to force the parser process into a C/POSIX locale (e.g., set LC_ALL=C or LC_NUMERIC=C) or call setlocale(LC_NUMERIC, "C") at startup - this keeps execution out of the vulnerable decimal-point substitution branch, at the trade-off of disabling locale-aware numeric formatting elsewhere in the application; alternatively, reject or truncate XML REAL literals longer than roughly 62 digits before they reach the parser, or restrict which untrusted input sources can feed mxml, though these are validation heuristics rather than a complete fix. Note the non-default locale and attacker-controlled XML prerequisites mean the practical exposure is limited; nevertheless, treat the update as routine hygiene. Advisory references: https://www.vulncheck.com/advisories/mini-xml-4.0.0-through-4.0.6-stack-out-of-bounds-write-via-mxml-strtod and the upstream commit URL above.
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
Mini-XML (mxml) is a small C library used to parse and generate XML, tracked under CPE cpe:2.3:a:michael_r_sweet:mini-xml, with the vulnerable code in mxml-file.c (mxml_strtod(), lines ~1860-1887 in v4.0.6). The root cause is CWE-193 (off-by-one error): when parsing a REAL (floating-point) value, mxml_strtod() copies the numeric token into a fixed 64-byte stack buffer named temp and, if the current locale's decimal point is not '.', substitutes the locale-appropriate separator before calling strtod(). The length guard was written as 'if (declen <= (sizeof(temp) - (size_t)(tempptr - temp)))', which fails to reserve space for the terminating NUL; the patched form subtracts an additional 1. A token whose digits fill the buffer exactly (63 digits) followed by a '.' therefore causes a single NUL byte to be written at index 64, one byte past the buffer. The vulnerability is reachable only through the locale-dependent branch, so a default 'C'/'en_US' locale never triggers it. The same upstream commit (367c7ddd) also corrects a separate UTF-16 surrogate check (>= 0xdfff changed to > 0xdfff), but that is a distinct defect from the reported overflow.
Know when Mini Xml 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:P/PR:N/UI:P/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N
AC:H and UI:R because a non-'.' locale plus a precisely crafted 63-digit value and the app processing attacker XML are needed; AV:L as delivery is typically local/file; C:N, I:L/A:L for a one-byte overflow.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Mini-XML 4.0.0 through 4.0.6 contains an off-by-one stack out-of-bounds write in mxml_strtod() when the locale decimal point is not '.'. Attackers can supply XML with a 63-digit REAL value followed by '.' to write a NUL byte past the 64-byte stack buffer, corrupting stack memory or crashing 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 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.
An issue has been found in Mini-XML (aka mxml) 2.12. Rated high severity (CVSS 8.8), this vulnerability is remotely expl
In Mini-XML (aka mxml) v2.12, there is stack-based buffer overflow in the scan_file function in mxmldoc.c. Rated medium
In Mini-XML (aka mxml) v2.12, there is a use-after-free in the mxmlAdd function of the mxml-node.c file. Rated medium se
An issue has been found in Mini-XML (aka mxml) 2.12. Rated medium severity (CVSS 5.5), this vulnerability is no authenti
Memory exhaustion denial of service in Mini-XML (mxml) 4.0.5 allows unauthenticated remote attackers to degrade a long-r
The mxml_write_node function in mxml-file.c in mxml 2.9, 2.7, and possibly earlier allows remote attackers to cause a de
The mxmlDelete function in mxml-node.c in mxml 2.9, 2.7, and possibly earlier allows remote attackers to cause a denial
EUVD-2026-101232
GHSA-pc2v-ppxx-vfq5
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB