GHSA-xm28-xvqc-gxxg
Copernik XML Factory (stock JDK provider) has Improper restriction of XInclude resource resolution
Quick fix
GHSA-xm28-xvqc-gxxg — eu.copernik:copernik-xml-factory: upgrade to the fixed version with the command below.
# pom.xml: bump <version>0.1.2</version> for eu.copernik:copernik-xml-factoryDetails
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
Are you affected?
Enter the version of the package you're using.
Affected packages
0Fixed in: 0.1.2# pom.xml: bump <version>0.1.2</version> for eu.copernik:copernik-xml-factoryReferences
- https://github.com/copernik-eu/copernik-xml-factory/security/advisories/GHSA-xm28-xvqc-gxxg[WEB]
- https://github.com/copernik-eu/copernik-xml-factory/commit/2fa042c44931b0a4ddd585d62b97a8a987efd6c6[WEB]
- https://github.com/copernik-eu/copernik-xml-factory/commit/e5febc6039ed4b0088245acb80ed7d6d6a7f5537[WEB]
- https://github.com/copernik-eu/copernik-xml-factory[PACKAGE]
- https://github.com/copernik-eu/copernik-xml-factory/releases/tag/v0.1.2[WEB]