Skip to main content

Copernik XML Factory CVE-2026-61586

HIGH
Improper Restriction of XML External Entity Reference (CWE-611)
2026-10-02 https://github.com/copernik-eu/copernik-xml-factory GHSA-xm28-xvqc-gxxg
Share

Severity by source

vuln.today AI
5.9 MEDIUM

AV:N as untrusted XML can arrive remotely; AC:H because the non-default XInclude-enabled, Xerces-absent configuration must align; PR:N/UI:N since the attacker only supplies XML; C:H for file/SSRF disclosure with no integrity or availability impact.

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

Lifecycle Timeline

5
Metadata Corrected
Oct 02, 2026 - 19:40 vuln.today
tag: Google removed
Metadata Corrected
Oct 02, 2026 - 19:40 vuln.today
tag: Apache removed
POC Analysis Generated
Oct 02, 2026 - 19:20 vuln.today
Analysis Generated
Oct 02, 2026 - 18:50 vuln.today
CVE Published
Oct 02, 2026 - 18:27 cve.org
HIGH

DescriptionCVE.org

Copernik XML Factory through 0.1.1, when running on its stock JDK provider, does not block XInclude resource resolution after an application enables XInclude on a factory returned by XmlFactories.newDocumentBuilderFactory() or XmlFactories.newSAXParserFactory(), or on an XMLReader passed through XmlFactories.harden(). The library's documented guarantee that XInclude resolution stays disabled therefore does not hold on that provider.

An application that parses untrusted XML in this configuration can be made to resolve xi:include references, allowing an attacker to read local files (information disclosure) or, through http hrefs, reach internal network endpoints (SSRF).

All of the following conditions must hold for an application to be affected:

  • it obtains a factory from XmlFactories.newDocumentBuilderFactory() or XmlFactories.newSAXParserFactory(), or hardens an externally obtained XMLReader with XmlFactories.harden();
  • the stock JDK provider is in effect, that is, Apache Xerces is not on the classpath;
  • XInclude is enabled, by calling setXIncludeAware(true) or the equivalent reader feature;
  • it parses XML from an untrusted source.

The Xerces provider (selected when Xerces is on the classpath) and the Android provider are not affected.

Applications are advised to upgrade to 0.1.2, which fixes the defect. As a workaround add Apache Xerces (xercesImpl) to the classpath so the library selects its unaffected Xerces provider.

Acknowledgements

The maintainer thank the following people for finding, reporting, and helping to remediate this issue:

  • Finders: Ta Duc Thien and Duc Anh Nguyen (Danzation)
  • Remediation developer: Ta Duc Thien
  • Tooling: Claude Code (Anthropic), Claude Opus 4.8

AnalysisAI

Improper restriction of XInclude resource resolution in Copernik XML Factory through 0.1.1 allows an attacker-controlled XML document to resolve xi:include hrefs when the stock JDK provider is in use, resulting in local file disclosure and server-side request forgery against internal HTTP endpoints. Only applications that obtain a factory from XmlFactories.newDocumentBuilderFactory() or XmlFactories.newSAXParserFactory() (or harden an externally supplied XMLReader via XmlFactories.harden()), run without Apache Xerces (xercesImpl) on the classpath, explicitly enable XInclude with setXIncludeAware(true) or the equivalent reader feature, and parse XML from an untrusted source are affected; the Xerces provider and the Android provider are not affected. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

No credit card · 7-day full trial

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Access
technique details hidden
Exploit
technique details hidden
Execution
technique details hidden
Impact
technique details hidden

Vulnerability AssessmentAI

Exploitation All four must hold simultaneously: (1) the application obtains its factory from XmlFactories.newDocumentBuilderFactory() or XmlFactories.newSAXParserFactory(), or hardens an external XMLReader via XmlFactories.harden(); (2) the stock JDK provider is active, meaning Apache Xerces (xercesImpl) is NOT on the classpath - if Xerces or the Android provider is used, the product is not affected; (3) XInclude is explicitly turned on via setXIncludeAware(true) or the equivalent reader feature, which is off by default; and (4) the parsed XML comes from an untrusted source. … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment No CVSS vector, EPSS score, or KEV entry was provided in the input, so quantitative exploitation signals are absent and the assessment rests on the CWE-611 (XInclude/XXE-family) description and patch evidence alone. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario Full exploit scenario with step-by-step reproduction available after sign-in.
Remediation Upgrade to Copernik XML Factory 0.1.2, which is the vendor-released patch and the first version in which the stock JDK provider installs a deny-all EntityResolver (Resolvers.FallbackDenyResolver) on every DocumentBuilder and XMLReader, so that xi:include hrefs fail unless an application explicitly allow-lists them; the fixing changes are visible in commits 2fa042c44931b0a4ddd585d62b97a8a987efd6c6 and e5febc6039ed4b0088245acb80ed7d6d6a7f5537, and release notes are at https://github.com/copernik-eu/copernik-xml-factory/releases/tag/v0.1.2 with the advisory at https://github.com/copernik-eu/copernik-xml-factory/security/advisories/GHSA-xm28-xvqc-gxxg. … Detailed patch versions, workarounds, and compensating controls in full report.

Recommended ActionAI

Within 24 hours, identify every application whose dependency manifests or lockfiles include Copernik XML Factory at or below 0.1.1, then narrow that list to teams that obtain their parser from XmlFactories.newDocumentBuilderFactory(), XmlFactories.newSAXParserFactory(), or XmlFactories.harden(), and upgrade those applications to version 0.1.2 from the vendor's release channel; where an immediate rebuild and redeploy is not possible, disable XInclude (setXIncludeAware(true) or the equivalent reader feature) in every code path that parses untrusted XML, since that single setting blocks the affected behavior. …

Sign in for detailed remediation steps and compensating controls.

Threat intelligence, references, and detailed analysis are available after sign-in.

Share

CVE-2026-61586 vulnerability details – vuln.today

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