---
id: "CVE-2026-85250"
kind: "vulnerability"
aliases: ["CVE-2026-85250"]
title: "Apache Camel: XPath InputSource mode lets XML external entities read files"
severity: "high"
cvss: 7.5
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["apache-camel", "java", "package", "self-hosted", "xpath"]
not_affected_if: ["camel-upgraded", "default-document-type", "trusted-input-only"]
published_at: "2026-10-19T11:17:23+00:00"
first_seen_at: "2026-10-23T21:57:18+00:00"
updated_at: "2026-10-25T03:23:14+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-85250", "first_seen_at": "2026-10-23T21:57:18+00:00"}]
---

# Apache Camel: XPath InputSource mode lets XML external entities read files

Apache Camel's XPath component, when set to documentType=InputSource, skipped the XML hardening used by its default mode, so a DOCTYPE with an external entity was accepted and expanded. An external sender can read files the Camel process can read and make it request hosts of the attacker's choosing.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Search Camel routes and code for `documentType=InputSource` or `XPathBuilder` set to InputSource on expressions that evaluate untrusted XML.
- Check the Camel version in the build file, for example `camel-xpath` in Maven or Gradle, against `4.18.5` or `4.22.1`.
- Check whether the DocumentBuilderFactory system properties that relax XML parsing are set in the JVM.

## Fix

- Upgrade Apache Camel to `4.23.0`, or to `4.18.5` on the 4.18.x LTS stream, or to `4.22.1` on the 4.22.x LTS stream.
- Until upgraded, stop using `documentType=InputSource` on expressions evaluated over untrusted XML; the default document type already refuses a DOCTYPE.

## Timeline

- 2026-10-23T21:57:18+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-85250

## From the sources

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.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
