XXE injection in Kitodo.Production EAD/XML upload parsing
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- —
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA.
Summary
Kitodo.Production before 3.9.2 parses uploaded EAD/XML files with XML parsers that keep the default, non-secure configuration, so the XMLUtils helpers resolve external entities (CWE-611). An authenticated user with low privileges who uploads a crafted EAD/XML file through the Create process dialog can read local files and make outbound requests from the server.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
Description from the CNA
Kitodo.Production is a workflow management tool for mass digitization and is part of the Kitodo Digital Library Suite. Prior to version 3.9.2, org.kitodo.production.helper.XMLUtils exposes several XML parsing helpers that construct a JAXP parser with the default, non-secure configuration. The methods parseXMLString(String), getNumberOfEADElements(String, String) and checkIfXmlIsWellFormed(String) build a DocumentBuilderFactory / XMLInputFactory / SAXParserFactory via newInstance() and parse the attacker-supplied string without disabling DOCTYPE declarations or external entity resolution. These helpers sit directly on the EAD-import path: an authenticated user who uploads an EAD/XML file through the "Create process" file-upload dialog has the uploaded bytes parsed by these methods. A crafted document with an external entity therefore yields XML External Entity (XXE) injection: local file disclosure and outbound SSRF requests from the server. This issue has been patched in version 3.9.2.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
Update Kitodo.Production to version 3.9.2, where this issue is patched.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
- Fix · CNA kitodo-production (kitodo) Fixed in 3.9.2
Timeline
- 2026-10-23 Threatist record created from CVE-2026-54668
- 2026-10-24 Priority changed: MEDIUM → LOW
- 2026-10-29 CISA SSVC decision points changed
- 2026-10-29 Priority changed: LOW → HIGH
References
More kitodo vulnerabilities
- TI-2022-08774 An issue was discovered in the Kitodo.Presentation (aka dif) extension before 2.3.2, 3.x… CVSS 3.1HIGH 7.5
- TI-2020-12665 The dlf (aka Kitodo.Presentation) extension before 3.1.2 for TYPO3 allows XSS. CVSS 3.1MEDIUM 6.1
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences