Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach shared multi-tenant Camel Thrift route
-
ExploitSend Thrift payload omitting optional fields
-
ExecutionShared defaultInstance retains prior sender's values
-
ImpactReceive another tenant's leaked field data
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V14 - Data Protection Exposure of data element to wrong session
|
| Exploitation Conditions | Exploitation requires a deployment that uses the camel-thrift Thrift data format's unmarshal operation on a route shared across more than one tenant or user, where the same data format instance (and its shared defaultInstance of the target type) processes messages from different parties. The leak surfaces specifically through optional/absent fields: a later message that omits a field inherits the previous message's value, and concurrent exchanges can observe each other's partially written state. Limiting factors that reduce real-world risk: single-tenant deployments, routes not using the Thrift data format, or deployments already on fixed releases (4.18.5, 4.22.1, 4.23.0) are unaffected; high attack complexity means the attacker must influence message sequencing/timing rather than deterministically forcing the disclosure. No authentication is required of the sender (PR:N). |
| Impact | This is a genuine but moderate-priority data-confidentiality flaw whose real-world risk is tightly bounded by its exploitation preconditions. The CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N, base 5.9 Medium) reflects a network-reachable, unauthenticated issue with high attack complexity and confidentiality-only impact - no integrity or availability effect. The AC:H rating is the dominant discriminator: exploitation depends on a specific deployment shape (one Camel route with the Thrift data format serving multiple tenants/users) plus the timing/sequencing of messages through the shared defaultInstance, which an attacker cannot reliably force. No EPSS score was supplied, so exploitation probability cannot be quantified from the input. KEV status is not present, so this is not confirmed actively exploited; there is no public exploit code either - the GitHub artifacts are the vendor patch and an isolation unit test, not a weaponized POC. The signals are internally consistent rather than conflicting: a Medium CVSS driven by high complexity, no KEV, and no POC all point to a real correctness/leakage bug that matters for multi-tenant operators but is not a drop-everything mass-exploitation threat. The practical consequence - one tenant reading another tenant's message fields - is serious in shared SaaS/multi-tenant integration contexts but irrelevant in single-tenant deployments or routes not using the Thrift data format. |
| Exploit ScenarioDerived | In a multi-tenant Apache Camel integration that unmarshals inbound Thrift messages on a shared route, tenant B sends a Thrift payload that omits one or more optional fields; because the data format deserializes into a process-wide shared defaultInstance, those omitted fields still carry the values left behind by tenant A's prior message, and tenant B receives A's data in the returned exchange body. Concurrent exchanges can similarly observe each other's partially written state. No public exploit code exists; triggering the leak reliably requires the attacker to influence message timing/sequencing on the shared route, consistent with the high attack complexity. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 19, 2026
In the camel-thrift data format, unmarshalled messages are deserialized into a process-wide shared defaultInstance and that same object is returned as the exchange body, so state from one message survives into the next. Senders who omit optional fields in a later payload inherit the previous sender's values, and concurrent exchanges can observe each other's partially written state - disclosing one tenant's data to another. Affected are Apache Camel 4.0.0 through 4.18.4 and 4.19.0 through 4.22.0; no public exploit identified at time of analysis, and exploitation requires a genuinely multi-tenant route using the Thrift data format plus attacker influence over message sequencing or timing (CVSS 5.9, AC:H, PR:N).
RemediationAI
Vendor-released patch: upgrade to Apache Camel 4.23.0; users on the 4.18.x LTS stream should upgrade to 4.18.5 and users on the 4.22.x LTS stream to 4.22.1, which deserialize into a cleared deep copy so each exchange receives its own instance. Patches are visible in the upstream pull requests https://github.com/apache/camel/pull/25823, https://github.com/apache/camel/pull/25940 and https://github.com/apache/camel/pull/25942, with the advisory at https://camel.apache.org/security/CVE-2026-85245.html. If an immediate upgrade is not possible, copy the unmarshalled body into a newly constructed instance straight after the data format runs and never retain a reference to the returned object - this closes the cross-message inheritance path but adds a copy per message and must be applied on every route using thrift unmarshalling, since a single missed route leaves the leak open. As an additional compensating control, split multi-tenant traffic onto per-tenant routes with separately instantiated ThriftDataFormat objects (or serialize access to a shared route) so no data format instance is reused across trust boundaries; this costs route/config duplication and reduced throughput under serialization, and does not fix the underlying shared-object defect if a single instance is still reused. Because exploitation depends on message ordering and concurrency, keeping the thrift unmarshal path single-threaded per tenant further reduces - but does not eliminate - exposure.
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
The camel-thrift component wraps Apache Thrift's TBase serialization as a Camel data format. A Camel DataFormat instance is shared by every exchange on a route, and the component held a single defaultInstance of the target TBase type that was passed to the Thrift deserializer on each unmarshal. Thrift's TBase.read() only assigns the fields actually present in the incoming bytes - it does not reset the object - so any field absent from a payload retained whatever value the prior message (or the configured default) had written. The returned body was that same shared object, meaning two exchanges could hold references to identical mutable state, and unsynchronized concurrent reads/writes could expose partially populated fields. This maps to CWE-488 (Exposure of Data Element to Wrong Session): session-scoped data is stored in a scope that outlives the session. The upstream fix (apache/camel pull requests 25823, 25940, 25942) replaces the shared instance with defaultInstance.deepCopy() followed by clear(), deserializes into that fresh copy, and returns it, so each exchange gets an isolated object; a regression test (ThriftUnmarshalIsolationTest) asserts that omitted optional fields no longer inherit prior or default values and that successive unmarshals return distinct objects. A related Thrift caveat applies: TBase instances are not thread-safe, so sharing them across concurrent exchanges also risked data races rather than only sequential leakage.
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:H/PR:N/UI:N/S:U/C:H/I:N/A:N
Network-reachable and unauthenticated (AV:N/PR:N), but needs a multi-tenant shared-route deployment plus message-timing conditions (AC:H); confidentiality-only cross-tenant disclosure, no integrity/availability impact.
Primary rating from Vendor (apache).
CVSS VectorVendor: apache
DescriptionCVE.org
Exposure of Data Element to Wrong Session vulnerability in Apache Camel Thrift component.
This issue affects Apache Camel: from 4.0.0 before 4.18.5, from 4.19.0 before 4.22.1.
The Thrift data format unmarshalled incoming data into the shared defaultInstance of the target type rather than into a fresh copy, and returned that shared object as the exchange body. Because the instance is shared process-wide, state written while unmarshalling one message stayed on the object and was visible to every later message that used the same type. Fields absent from a later payload retained the previous message's values, so content belonging to one sender could be read while processing another sender's message, and concurrent exchanges could observe each other's partially written state. In a deployment that serves more than one tenant or user through the same route, that is disclosure of one party's data to another.
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. Unmarshalling now deserializes into a copy, so each exchange gets its own instance and no state carries between messages. For deployments that cannot upgrade immediately, copy the unmarshalled body into a new instance immediately after the data format runs, and do not retain references to the returned object.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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-104186
GHSA-ww26-c733-j3r5
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB