Summary
MPXJ: XXE Vulnerability in MerlinReader
Advisory details
Impact
MPXJ used the default configuration when creating a DocumentBuilder instance, which leaves doctype declarations enabled, when parsing the XML content of the ZTIMEINTERVALS column from a Merlin project SQLite file. This would allow a carefully crafted XML payload to read an arbitrary file. However, although an arbitrary file can be read, the way the resulting parsed XML is processed by MPXJ means that the data it contains is unlikely to be available for exfiltration.
Patches
The patch is included in MPXJ 16.4.1
Workarounds
Potential workarounds include:
- Avoid reading Merlin project files with MPXJ
- Only accept Merlin project files from trusted sources
- Preprocess Merlin SQLite databases to strip doctype declarations from the ZTIMEINTERVALS column
References
Related vulnerabilities
All Supply chain →- HIGHCVE-2026-61586
Copernik XML Factory (stock JDK provider) has Improper restriction of XInclude resource resolution
- CRITICALCVE-2026-61741
http4s-scala-xml has an XML External Entity (XXE) processing issue
- HIGHCVE-2026-55848
MapFish Print has XXE that allows reading arbitrary files of certain types
- HIGHCVE-2026-96627
Arcane: Delegated users:update permission allows admin account takeover via password reset (no privilege-hierarchy check)
- MEDIUMCVE-2026-96628
Arcane: Environment access token bypasses the admin-required authorization gate on `/api/debug/pprof`
- CRITICALCVE-2026-105192
LMCache: Remote code execution via unsafe deserialization in multiprocess mode transport