External entity resolution in Apache Camel FOP producer
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- High
- Impact type
- —
- Confidentiality · integrity · availability
- High · Low · None
- Fix status
- Partial Red Hat: 1 without a fix
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and Red Hat.
Summary
Apache Camel from 4.0.0 before 4.18.5 and from 4.19.0 before 4.22.1 is affected. The camel-fop FopProducer resolves external DTDs and entities in untrusted XSL-FO input (CWE-611) when a third-party JAXP TransformerFactory such as Saxon-HE is on the classpath. A remote sender whose XSL-FO reaches the producer can read files readable by the Camel process and make the process request hosts named in the document.
Written with Claude Haiku 5.5 from the sources below · 2026-11-04
Description from the CNA
FopProducer transforms the incoming XSL-FO message body by creating a javax.xml.transform.TransformerFactory through TransformerFactory.newInstance() and enabling only FEATURE_SECURE_PROCESSING before running an identity transform over the body. On the JDK's built-in transformer, that feature alone already empties the accessExternalDTD and accessExternalStylesheet limits, so an external DTD or entity is refused. When a third-party JAXP TransformerFactory such as Saxon-HE is on the classpath, for example because the application also uses camel-xslt-saxon or camel-saxon, TransformerFactory.newInstance() returns that implementation instead, and FEATURE_SECURE_PROCESSING on its own does not restrict external resource access on it. A DOCTYPE with an external subset, or an external general entity, declared in the XSL-FO document is then resolved and expanded while the body is transformed. An external sender whose XSL-FO reaches a fop producer could therefore read files readable by the Camel process and cause the process to issue requests to hosts the document names. camel-fop does not bring such a factory itself, and excludes Xalan, so a default deployment using the JDK transformer is not affected; the issue is reachable only where another component has placed an alternative JAXP TransformerFactory on the classpath. Releases on the 4.14.x line and earlier reached end of life before this issue was resolved and do not receive a fix.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
Upgrade Apache Camel to 4.18.5 or 4.22.1. Red Hat Fuse 7 is affected, and Red Hat plans no fix. Releases on the 4.14.x line and earlier are end of life and receive no fix.
Written with Claude Haiku 5.5 from the sources below · 2026-11-04
- Fix · CNA Apache Camel (Apache Software Foundation) Fixed in 4.18.5, 4.22.1
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Release ·
Apache Camel 4.18.5, 4.22.1
39 records Highest priority Priority HIGH 6 HIGH, 9 MEDIUM, 24 LOW
Other records, highest priority first
- TI-2026-76322 Unsafe deserialization in Apache Camel camel-hazelcastPriority HIGH 82
- TI-2026-76339 Path traversal in Apache Camel azure-files componentPriority HIGH 74
- TI-2026-76330 Path traversal in Apache Camel FTP consumer escapes polled directoryPriority HIGH 74
Vendor assessments
Red Hat
Red Hat rating: Moderate. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Fuse 7 | Affected | No fix planned: Out of support scope |
Timeline
- 2026-10-19 Threatist record created from CVE-2026-91858
- 2026-10-19 Alias added: GHSA-qrg3-hxwc-36jm
- 2026-10-19 CISA SSVC decision points changed
- 2026-10-19 Priority changed: MEDIUM → LOW
- 2026-11-04 Affected versions changed · Red Hat
- 2026-11-04 CVSS score added · Red Hat
References
Patch 3
Other 1
More Apache vulnerabilities
- TI-2025-18529 Apache Tomcat: Potential RCE and/or information disclosure and/or information corruption with partial PUT KEVCVSS 3.1CRITICAL 10.0
- TI-2024-30292 Apache OFBiz: Confused controller-view authorization logic (forced browsing) KEVCVSS 3.1CRITICAL 9.8
- TI-2024-26062 Apache OFBiz: Unauthenticated endpoint could allow execution of screen rendering code KEVCVSS 3.1CRITICAL 9.8
- TI-2024-21190 Apache OFBiz: Path traversal leading to RCE KEVCVSS 3.1CRITICAL 9.8
- TI-2024-18186 Apache HugeGraph-Server: Command execution in gremlin KEVCVSS 3.1CRITICAL 9.8
- TI-2023-25106 Deserialization of untrusted data in Apache ActiveMQ KEVCVSS 3.1CRITICAL 10.0
Sources
- CVE-2026-91858 · CVE Program
- CVE-2026-91858 · NVD
- FIRST EPSS
- GHSA-qrg3-hxwc-36jm · GitHub Advisory Database · CC BY 4.0
- CVE-2026-91858 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences