Apache Camel patches XXE, deserialization, and credential flaws
Saxon needs 4.18.5, 4.22.2, or 4.23.0; stopping at the XPath and Smooks fix 4.22.1 misses it.
XXE in Apache Camel XPath when documentType is InputSource
Apache Camel's XPath component bypasses its hardened XML parser when documentType is InputSource, so a DOCTYPE the default type refuses is accepted and external entities are resolved. An external sender whose XML reaches such an expression needs no account and no user interaction. The Camel process can leak files it can read and be made to request hosts named in the payload. Deployments on 4.0.0 through 4.18.x before 4.18.5, and 4.19.0 through 4.22.x before 4.22.1, that evaluate untrusted XML this way are affected.
What to do: Upgrade 4.18.x LTS to 4.18.5, 4.22.x LTS to 4.22.1, or move to 4.23.0. Until then, do not use documentType=InputSource on expressions over untrusted XML.
| Product | Affected | Fixed in |
|---|---|---|
| Apache Camel | from 4.0.0 before 4.18.5, from 4.19.0 before 4.22.1 | 4.18.5, 4.22.1, and 4.23.0 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
Improper Restriction of XML External Entity Reference vulnerability in Apache Camel XPath component. This issue affects Apache Camel: from 4.0.0 before 4.18.5, from 4.19.0 before 4.22.1. With documentType set to InputSource, XPathBuilder handed the payload straight to javax.xml.xpath, which builds a DocumentBuilder of its own using the JDK defaults. The hardening applied to Camel's default document type was therefore bypassed: a DOCTYPE declaration that is refused on the default type was accepted here, and the external entity it declared was resolved and expanded into the evaluated document. An external sender whose XML reaches such an expression could read files readable by the Camel process and cause the process to issue requests to hosts it names. The two document types disagreeing on parser configuration is what made this reachable, since a deployment choosing InputSource for streaming reasons had no indication it was also choosing a weaker parser. Upgrade to Apache Camel 4.23.0, which fixes the issue. Users on the 4.18.x LTS releases stream should upgrade to 4.18.5. Users on the 4.22.x LTS releases stream should upgrade to 4.22.1. The InputSource document type now goes through the same hardened parser as the default type, so a DOCTYPE is refused. Note that it also shares that type's documented escape hatch: the same DocumentBuilderFactory system properties that relax the default type relax this one, so a deployment that has set them remains unprotected by design. For deployments that cannot upgrade immediately, do not use documentType=InputSource on expressions evaluated over untrusted XML; the default document type already refuses a DOCTYPE.
Saxon needs 4.18.5, 4.22.2, or 4.23.0; stopping at the XPath and Smooks fix 4.22.1 misses it.
Today 625 readers · 755 views · 574 reads · all time 158K views