Vulnerability DatabaseCVE-2026-124317

CVE-2026-124317: 
Linux Debian vulnerability analysis and mitigation

Overview

CVE-2026-124317 is a buffer over-read vulnerability in libexpat (the Expat XML parsing library) affecting all versions through 2.10.0. The flaw resides in the unknown_toUtf8() and unknown_toUtf16() functions in xmltok.c, triggered when handling application-registered unknown encodings with a document ending in a truncated multibyte sequence. It was reported by researcher @chemicalpeace, patched on November 7, 2026, and assigned CVE-2026-124317 by VulnCheck. The vulnerability carries a CVSS v3.1 score of 4.8 (Medium) and a CVSS v4.0 score of 6.3 (Medium) (Github Advisory, libexpat PR).

Technical details

The root cause is a CWE-126 (Buffer Over-read) in the unknown_toUtf8() and unknown_toUtf16() functions within expat/lib/xmltok.c (lines 1274–1322). When an application registers a custom unknown encoding and the parser encounters an XML document that ends with an incomplete (truncated) multibyte character sequence, the convert callback invoked by these functions does not properly validate that sufficient bytes remain in the parse buffer before reading, causing it to read past the buffer boundary into adjacent memory. Exploitation requires the attacker to supply a specially crafted XML document to an application that both uses libexpat and registers a custom unknown encoding handler — a non-trivial precondition that raises attack complexity (Github Advisory, libexpat source, libexpat PR).

Impact

Successful exploitation can result in two primary outcomes: leakage of adjacent heap or stack memory contents (information disclosure) and application crashes (denial of service). The memory disclosure could expose sensitive data processed by the application, such as credentials, tokens, or other parsed XML content residing in adjacent memory regions. The availability impact is limited to the parsing application itself; there is no known path to code execution or integrity compromise based on current analysis (Github Advisory, Feedly).

Exploitability

As of the disclosure date (November 7, 2026), there is no public proof-of-concept exploit and no evidence of in-the-wild exploitation. The EPSS score is 0.0, reflecting very low current exploitation probability. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Exploitation is constrained by the requirement that the target application must register a custom unknown encoding handler, limiting the attack surface to a subset of libexpat deployments (Github Advisory).

Exploitation steps

  1. Identify target application: Locate a network-accessible application that uses libexpat ≤ 2.10.0 and registers a custom unknown encoding handler via XML_SetUnknownEncodingHandler().
  2. Craft malicious XML document: Construct an XML document that declares the custom unknown encoding in its XML declaration (e.g., <?xml version="1.0" encoding="CUSTOM-ENC"?>) and ends with a truncated multibyte character sequence — i.e., the document is cut off mid-character so the final bytes represent an incomplete multibyte unit.
  3. Deliver the payload: Submit the crafted XML document to the target application through its normal input channel (e.g., HTTP request body, file upload, API endpoint, or network socket).
  4. Trigger the over-read: When libexpat's unknown_toUtf8() or unknown_toUtf16() invokes the registered convert callback for the truncated sequence, it reads past the end of the parse buffer into adjacent memory.
  5. Observe outcome: Depending on memory layout, the application may crash (DoS) or the adjacent memory contents may be reflected in an error message, log, or response, enabling information disclosure (libexpat PR, Github Advisory).

Indicators of compromise

  • Network: Unusual or malformed XML documents submitted to application endpoints, particularly those with non-standard encoding declarations in the XML prolog followed by truncated content.
  • Logs: Application crash logs or core dumps originating from the libexpat parsing context; error messages referencing xmltok.c, unknown_toUtf8, or unknown_toUtf16; segmentation fault signals from the XML parsing process.
  • Process: Unexpected termination (crash) of services that perform XML parsing; repeated restarts of XML-parsing daemons or worker processes.
  • File System: Core dump files (core.*) generated by the application process in the working directory, potentially containing leaked memory contents.

Mitigation and workarounds

The fix was merged into the libexpat master branch on November 7, 2026, and is targeted for release in libexpat 2.11.0 (libexpat PR). Organizations should upgrade to libexpat 2.11.0 or later once released. As interim mitigations: validate and sanitize all XML input to ensure complete multibyte sequences before passing to the parser; restrict XML parsing to trusted sources only; and avoid registering custom unknown encoding handlers where not strictly necessary. The patch specifically adds bounds checking in unknown_toUtf8() and unknown_toUtf16() to reject over-reads before they occur (Github Advisory).

Community reactions

The vulnerability was credited to researcher @chemicalpeace by libexpat maintainer @hartwork in the pull request discussion. The fix was merged promptly on the same day the CVE was assigned. No significant broader media coverage or notable community controversy has been observed beyond standard vulnerability tracking and aggregation sites (libexpat PR).

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Affected

bookworm

expat

Affected

sid

expat

Affected

trixie

expat

Affected

RHEL / CentOS

Affected

OpenShift

openshift/ose-rhel-coreos-9

Affected

Source: This report was generated using AI

Related Linux Debian vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-93879HIGH7.5
  • Linux Debian logoLinux Debian
  • moditect-javadoc
NoNoNov 08, 2026
CVE-2026-123613MEDIUM6.9
  • Linux Debian logoLinux Debian
  • rust-rustls
NoYesNov 08, 2026
CVE-2026-123611MEDIUM6.3
  • Linux Debian logoLinux Debian
  • rust-rustls
NoNoNov 08, 2026
CVE-2026-123610MEDIUM6.3
  • Linux Debian logoLinux Debian
  • clevis-pin-trustee.src
NoNoNov 08, 2026
CVE-2026-123612MEDIUM4.6
  • Linux Debian logoLinux Debian
  • clevis-pin-trustee.src
NoNoNov 08, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Additional Wiz resources

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management