Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach Smooks XML route unauthenticated
-
DeliveryCraft XML body with external entity/DTD
-
ExploitWoodstox parser resolves entity
-
ExecutionRead local file or trigger internal request
-
PersistResolved data bound into result
-
ImpactResponse returned to attacker on InOut route
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A02:2025 - Security Misconfiguration
ASVS 5.0
V13 - Configuration XML external entity prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that a Camel route unmarshal the XML body using the Smooks data format (.unmarshal().smooks(...)) or the smooks: component with its default reader (Woodstox SAX), and that the attacker can supply or influence the XML message body reaching that route; the affected versions are 4.7.0 before 4.18.5 and 4.19.0 before 4.22.1. No non-default option is needed because external-entity resolution was the default behaviour. LIMITING FACTORS: routes that declare their own reader (EDI, CSV, JSON, or a custom reader) do not use the XML reader and are NOT affected; the marshalling direction is unaffected; and full exfiltration of read file contents or internal responses back to the attacker depends on an InOut (request-reply) route returning the bound result, whereas InOnly routes still permit file read/SSRF side effects but limit direct data return. |
| Impact | This is a genuine priority for any deployment that actually uses the camel-smooks component to unmarshal XML, though the raw CVSS 8.2 overstates the risk for the broader Camel installed base. The vendor-supplied CVSS vector (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L) is internally consistent with the description: an external sender who merely controls the XML message body triggers resolution of external entities with no authentication (PR:N) and no user interaction (UI:N), yielding high confidentiality impact (C:H, arbitrary local file read) and low availability impact (A:L, via forced outbound requests / potential resource exhaustion), with no integrity impact (I:N) - a textbook XXE / SSRF profile for CWE-611. The critical caveat is scope: exploitation is network-reachable and default-configuration (no non-default option required, since external-entity resolution was the Woodstox default), BUT only for routes that use the Smooks data format (.unmarshal().smooks(...)) or the smooks: endpoint with the default XML reader - EDI, CSV, JSON and custom-reader configurations are explicitly unaffected, so real-world exposure is narrower than the vector alone implies. No EPSS score was provided, so exploitation probability cannot be quantified. KEV status is absent (not listed) and no POC is referenced, so there is no evidence of active exploitation - the signals point to a credible but not-yet-demonstrated-in-the-wild flaw. Exploitation is confirmed exploitable by the vendor advisory and corroborated by the source patch (addition of a default-off allowExternalEntities option and a hardened DocumentBuilder), which is strong confirmation that the vulnerability and fix are real. |
| Exploit ScenarioDerived | An attacker sends an XML message containing a DOCTYPE with an external subset or an external general entity to a Camel route that unmarshals the body via the Smooks data format or smooks: endpoint; the Woodstox reader resolves the entity, reading a local file (e.g. /etc/passwd or application secrets) or forcing the Camel process to fetch an attacker-named internal URL. On InOut routes the resolved content is bound into the result and returned to the sender, directly exfiltrating file contents or internal service responses. No public exploit is identified at time of analysis, but the technique is a standard, well-understood XXE pattern requiring no special attacker tooling. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 19, 2026
XML external entity injection in the camel-smooks component of Apache Camel (versions 4.7.0 through 4.18.4 and 4.19.0 through 4.22.0) lets remote attackers who can supply or influence an XML message body that is unmarshalled by Smooks read files accessible to the Camel process and force it to issue requests to internal network hosts. No privileges or user interaction are required (CVSS:3.1/AV:N/AC:L/PR:N/UI:N), and no non-default configuration is needed because external entity resolution was the default behaviour of the Woodstox SAX reader Smooks used; the confidentiality impact is high with a low availability impact, giving a base score of 8.2. The flaw is only reachable on routes that unmarshal XML through .unmarshal().smooks(...) or the smooks: component with its default reader, and full return of exfiltrated content depends on an InOut route binding the resolved entity into the reply, so no public exploit code or active exploitation has been identified at time of analysis, though the vendor has released fixed versions.
RemediationAI
Upgrade to Apache Camel 4.23.0, or to the patched LTS releases 4.18.5 (4.18.x stream) or 4.22.1 (4.22.x stream); vendor-released patches for the hardening are visible in pull requests https://github.com/apache/camel/pull/26270, https://github.com/apache/camel/pull/26327 and https://github.com/apache/camel/pull/26329, with full details in the advisory at https://camel.apache.org/security/CVE-2026-88901.html. After upgrading, leave the new allowExternalEntities option at its default of false and only enable it for trusted legacy integrations that genuinely depend on external entity resolution, accepting the reintroduced XXE exposure on those routes. Deployments on 4.14.x or earlier must migrate to a supported line, since no fix will be backported. If immediate upgrade is impossible, do not route XML from untrusted senders through .unmarshal().smooks(...) or the smooks: endpoint, or supply a custom hardened XML reader in the Smooks configuration (the trade-off being that this bypasses the new built-in secure parsing path and must be maintained by the operator); additionally restrict outbound network egress from the Camel process and run it with least-privilege file system permissions to blunt file-read and SSRF impact.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
CWE-611 (Improper Restriction of XML External Entity Reference) arises here because camel-smooks handed the raw message body to Smooks, which parsed XML with its default reader, the Woodstox SAX parser configured to resolve external general and parameter entities and to load external DTDs. Unlike the other Camel XML components, camel-smooks applied none of the standard JAXP parser hardening, so a DOCTYPE with an external subset or an external general entity declared in the attacker-supplied document was dereferenced and expanded during unmarshalling, with the resolved content bound into the unmarshalled result. The fix reworks the component to parse the body with a javax.xml.parsers.DocumentBuilder configured with secure processing (no external general/parameter entities, no external DTD loading) and passes the resulting DOM to Smooks, mirroring the configuration used by org.apache.camel.converter.jaxp.XmlConverter. A new allowExternalEntities option (default false, flagged insecure:dev in the catalog metadata) restores legacy behaviour for trusted configurations. Configurations that declare their own non-XML reader (EDI, CSV, JSON, or custom) bypass the XML reader entirely and the marshalling direction is unchanged, so the attack surface is limited to XML unmarshalling on the Smooks data format or endpoint.
Know when Apache Camel gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L
Attacker-supplied XML body reaches the parser remotely with no auth or interaction (AV:N/AC:L/PR:N/UI:N); arbitrary local file read gives C:H, forced outbound requests give A:L, no integrity impact.
Primary rating from Vendor (apache).
CVSS VectorVendor: apache
DescriptionCVE.org
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.
Articles & Coverage 1
Executive ViewAI
Apache Camel's camel-smooks XML unmarshalling component (versions 4.7.0 through 4.18.4 and 4.19.0 through 4.22.0) can be manipulated by an unauthenticated party who can get an XML payload onto a Smooks route, allowing that party to read files the integration service can access and to pivot requests toward internal network hosts. Because Camel typically sits at the center of the integration layer with broad connectivity and service credentials, a successful attack could expose configuration data, secrets, or reachable back-end systems that the platform itself trusts. Any team operating Smooks-based XML routes should treat this as a priority remediation item, even though no public exploit code or active exploitation has been identified at time of analysis.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
XML External Entity (XXE) attacks exploit XML parsers that process Document Type Definitions (DTDs) without proper restrictions.
More in Apache Camel
View allRemote code execution in Apache Camel's camel-coap component (versions 4.14.0-4.14.5, 4.18.0 before 4.18.1, and 4.19.0)
Unsafe Java deserialization in Apache Camel's camel-infinispan component allows arbitrary code execution when the ProtoS
Unauthenticated remote code execution affects the camel-hazelcast component of Apache Camel 4.0.0 through 4.18.4 and 4.1
Header-injection in the Apache Camel camel-atmosphere-websocket producer lets an external sender hijack WebSocket messag
Header-filter bypass in the Apache Camel Undertow component (4.11.0-4.14.8, 4.15.0-4.18.3, and 4.19.0-4.21.x) lets remot
Remote code execution in Apache Camel 3.18.0-4.14.5 and 4.15.0-4.18.1 stems from CXF and Knative HeaderFilterStrategy im
Message header injection in Apache Camel's camel-mail component (3.0.0 before 4.14.6 and 4.15.0 before 4.18.1) lets an a
Remote code execution via unsafe Java deserialization affects the camel-pqc component of Apache Camel 4.18.0-4.18.2 and
Unsafe Java deserialization in Apache Camel's camel-consul component (ConsulRegistry / ConsulRegistryUtils.deserialize)
Unauthenticated deserialization of attacker-controlled messages in Apache Camel's camel-jgroups consumer can lead to rem
Expression language injection in the Apache Camel dynamic-router-control endpoint allows a party who can place a message
Deserialization of untrusted data in the Apache Camel Spring Redis component (camel-spring-redis) allows an authenticate
EUVD-2026-104206
GHSA-x4v6-22c3-2wm5
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB