← Back to CVE List
CVE-2026-61586NVD
Vulnerability Summary
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
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
CVSS v4.0 Base Metrics — Score 8.2
Attack VectorNetwork
Attack ComplexityLow
Attack RequirementsPresent
Privileges RequiredNone
User InteractionNone
Confidentiality (Vulnerable System)High
Integrity (Vulnerable System)None
Availability (Vulnerable System)None
Confidentiality (Subsequent System)None
Integrity (Subsequent System)None
Availability (Subsequent System)None
Affected & Patched Versions
- eu.copernik:copernik-xml-factory < 0.1.2
Not provided by Private for this CVE.
External References
- https://github.com/copernik-eu/copernik-xml-factory/security/advisories/GHSA-xm28-xvqc-gxxg
- https://github.com/copernik-eu/copernik-xml-factory/commit/2fa042c44931b0a4ddd585d62b97a8a987efd6c6
- https://github.com/copernik-eu/copernik-xml-factory/commit/e5febc6039ed4b0088245acb80ed7d6d6a7f5537
- https://github.com/copernik-eu/copernik-xml-factory/releases/tag/v0.1.2
- https://github.com/advisories/GHSA-xm28-xvqc-gxxg