Severity: 
    CVSS 3.1: 8.2 (high) CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L

Affected versions:

- Apache Camel (org.apache.camel:camel-smooks) 4.7.0 before 4.18.5
- Apache Camel (org.apache.camel:camel-smooks) 4.19.0 before 4.22.1

Description:

Improper Restriction of XML External Entity Reference vulnerability in Apache 
Camel.



This issue affects Apache Camel: from 4.7.0 before 4.18.5, from 4.19.0 before 
4.22.1.



Improper Restriction of XML External Entity Reference in the Smooks component 
(camel-smooks) in Apache Camel allows an attacker who supplies the XML message 
body to read local files or issue requests to internal network locations via an 
external entity declaration in that body. This issue affects Apache Camel: from 
4.7.0 before 4.18.5, from 4.19.0 before 4.22.1. The Smooks data format 
(.unmarshal().smooks(...)) and the Smooks component (smooks:) parse the 
incoming XML body with the reader Smooks resolves by default, which is the 
Woodstox SAX parser. That reader resolves external general and parameter 
entities and loads external DTDs, and camel-smooks applied none of the parser 
hardening that the other Camel XML components apply. A DOCTYPE with an external 
subset, or an external general entity, declared in the XML document is 
therefore resolved and expanded while the body is unmarshalled, and the 
resolved content is bound into the unmarshalled result and returned on InOut 
routes. An external sender whose XML reaches a camel-smooks data format or 
endpoint could therefore read files readable by the Camel process and cause the 
process to issue requests to hosts the document names. No non-default option is 
required, since resolving external entities was the default behaviour. 
Configurations that declare their own reader - EDI, CSV, JSON, or a custom 
reader - do not use the XML reader and are not affected. Users are recommended 
to upgrade to version 4.18.5, 4.22.1 or 4.23.0, which fixes the issue.



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. camel-smooks now parses the XML body with a 
javax.xml.parsers.DocumentBuilder that does not resolve external general or 
parameter entities and does not load external DTDs, and hands Smooks the 
resulting document, matching the secure XML processing configuration used by 
org.apache.camel.converter.jaxp.XmlConverter and the other Camel XML 
components. This hardening is applied only when the Smooks configuration parses 
XML with its default reader, so EDI, CSV, JSON and custom-reader 
configurations, and the marshalling direction, are unchanged. A new 
allowExternalEntities option, disabled by default, restores the previous 
behaviour for trusted legacy configurations that rely on external entity 
resolution. The camel-4.14.x releases stream and earlier reached end of life 
before this issue was resolved and will not receive a fix, so deployments on 
those lines must move to a supported release. For deployments that cannot 
upgrade immediately, do not apply camel-smooks to XML received from untrusted 
senders.

Solution:

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. camel-smooks now parses the XML body with a 
javax.xml.parsers.DocumentBuilder that does not resolve external general or 
parameter entities and does not load external DTDs, and hands Smooks the 
resulting document, matching the secure XML processing configuration used by 
org.apache.camel.converter.jaxp.XmlConverter and the other Camel XML 
components. This hardening is applied only when the Smooks configuration parses 
XML with its default reader, so EDI, CSV, JSON and custom-reader 
configurations, and the marshalling direction, are unchanged. A new 
allowExternalEntities option, disabled by default, restores the previous 
behaviour for trusted legacy configurations that rely on external entity 
resolution. The camel-4.14.x releases stream and earlier reached end of life 
before this issue was resolved and will not receive a fix, so deployments on 
those lines must move to a supported release. For deployments that cannot 
upgrade immediately, do not apply camel-smooks to XML received from untrusted 
senders.

Work Arounds:

Do not apply the Smooks data format or the Smooks component to XML received 
from untrusted senders. The camel-4.14.x releases stream and earlier reached 
end of life before this issue was resolved and will not receive a fix, so 
deployments on those lines must move to a supported release.

Credit:

h1ei1 (finder)
Andrea Cosentino (remediation developer)

References:

https://camel.apache.org/security/CVE-2026-88901.html
https://issues.apache.org/jira/browse/CAMEL-24677
https://github.com/apache/camel/pull/26270
https://github.com/apache/camel/pull/26327
https://github.com/apache/camel/pull/26329
https://camel.apache.org/
https://www.cve.org/CVERecord?id=CVE-2026-88901

Reply via email to