Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeploy multiple OAuth2 camel-http endpoints differing in scope/resource/token-endpoint
-
DeliveryFirst route mints and caches token under incomplete key
-
ExploitSecond route hits shared static JVM cache
-
ExecutionOver-scoped or wrong-resource token reused
-
ImpactRequest carries broader authority than configured
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V3 - Web Frontend Security Cache-Control for sensitive pages
|
| Exploitation Conditions | Requires a single JVM running Apache Camel (4.0.0-4.18.4 or 4.19.0-4.22.0) with at least two camel-http OAuth2 client-credentials endpoints that share the same request URI, oauth2ClientId and oauth2ClientSecret but differ in oauth2Scope, oauth2ResourceIndicator, or oauth2TokenEndpoint, with token caching enabled (oauth2CacheTokens=true). Because the token cache is a static map shared across every configurer instance and CamelContext in the JVM, these endpoints collide on the incomplete cache key. Limiting factors that make this non-default and low-risk: deployments with only one OAuth2 endpoint, or endpoints that also differ in URI or credentials, are unaffected; the outcome also depends on which route populates the cache first; and there is no external attacker vector - the authority confusion occurs between the operator's own routes. |
| Impact | This is a genuine-but-low-priority issue, and the signals are internally consistent. The vendor-supplied CVSS of 4.8 (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N) reflects limited confidentiality and integrity impact with high attack complexity, and the description explicitly states severity was assessed low because exploitation depends on an uncommon deployment shape. No EPSS score, no CISA KEV listing, and no public POC were provided - consistent with no public exploit identified at time of analysis. There is no SSVC decision data supplied. Importantly, the PR:N / AV:N framing is misleading for this flaw: this is not a classic remote attacker scenario but an unintentional in-JVM token-confusion bug (CWE-524) where a route is served a cached OAuth2 token minted for a different scope, resource, or authorization server. There is no external attacker action required and arguably no attacker at all - the 'exploitation' is an operator's own routes crossing authority boundaries. The network vector applies only in the sense that an over-privileged token may be presented to an upstream resource server. Net: real correctness/security defect worth patching on normal maintenance cadence, but not an urgent, widely-exploitable threat. |
| Exploit ScenarioDerived | An organization runs Apache Camel with two camel-http routes using the same client credentials and request URI but different oauth2Scope (e.g. 'read' vs 'read+write') and token caching enabled, in the same JVM. The route needing only 'read' runs first and caches its token; the second route - or on different timing, the first - is then handed the other route's cached token, so a narrow-scope endpoint receives broad-scope authority or a token meant for a different resource/authorization server. No public exploit code exists, and triggering it requires the specific multi-endpoint configuration plus the ordering in which routes populate the shared static cache. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 19, 2026
Apache Camel's camel-http OAuth2 client-credentials token cache is keyed only on the request URI, client ID and client secret, so two endpoints in the same JVM that differ solely in OAuth2 scope, resource indicator or token endpoint collide on one cache entry and one route can be served a token minted for another. Affected are Apache Camel 4.0.0 through 4.18.4 and 4.19.0 through 4.22.0 with token caching enabled (oauth2CacheTokens=true) and at least two such OAuth2 endpoints configured; deployments with a single endpoint, or endpoints that also differ in URI or credentials, are not impacted. Rated CVSS 4.8 (AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N, CWE-524), the practical consequence is authority confusion between the operator's own routes rather than an external attack path, and no public exploit identified at time of analysis; fixed in 4.23.0, 4.18.5 and 4.22.1.
RemediationAI
Upgrade to Apache Camel 4.23.0, which contains the corrected cache key; users on the 4.18.x LTS stream should move to 4.18.5 and 4.22.x LTS users to 4.22.1, per the advisory at https://camel.apache.org/security/CVE-2026-85317.html and the fixes in https://github.com/apache/camel/pull/25834, https://github.com/apache/camel/pull/25937 and https://github.com/apache/camel/pull/25938. Be aware of the post-upgrade side effect documented in the 4.23 upgrade guide: endpoints that previously shared a token across differing scopes, resource indicators or token endpoints will now mint one token per distinct combination, so the authorization server will see more token requests and latency can rise accordingly. If upgrading is not possible, run endpoints that differ in oauth2Scope, oauth2ResourceIndicator or oauth2TokenEndpoint in separate JVMs so they no longer share the static cache; the trade-off is additional JVM processes and memory, plus the operational cost of splitting routes that may otherwise have been co-located. Deployments with a single OAuth2 endpoint, or where every endpoint already differs in request URI or client credentials, are not exposed and can schedule the upgrade normally.
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 flaw sits in the camel-http component's OAuth2ClientConfigurer, which implements the OAuth2 client-credentials grant (RFC 6749 section 4.4) and caches minted access tokens in a static map that is shared by every configurer instance and every CamelContext in the JVM. Before the fix, the cache key was a Java record holding only the request URI, oauth2ClientId and oauth2ClientSecret, while the token request is actually shaped by three further parameters: oauth2Scope, oauth2ResourceIndicator (RFC 8707 resource indicators) and oauth2TokenEndpoint. Because those fields were absent from the key, two routes pointed at the same target with the same credentials but configured for different scopes, resources or authorization servers resolved to the same entry, and whichever route minted a token first determined the authority handed to the other. The upstream patch extends the OAuth2URIAndCredentials record to include tokenEndpoint, scope and resourceIndicator, and adds regression tests that close the token server and confirm a differing scope forces a cache miss while an identical scope still hits. This is CWE-524 (Use of Cache Containing Sensitive Information) manifesting as incorrect scoping of a credential rather than disclosure of the cache contents; the accompanying upgrade-guide note warns that after the fix the token endpoint will observe more requests, since each distinct scope/resource/token-endpoint combination now mints and caches its own token.
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:L/I:L/A:N
AC:H because it needs a specific multi-endpoint config and cache-population ordering; PR:N as no attacker credentials are involved; C:L/I:L for token exposure and over-broad authority; A:N and S:U.
Primary rating from Vendor (apache).
CVSS VectorVendor: apache
DescriptionCVE.org
Use of Cache Containing Sensitive Information vulnerability in Apache Camel HTTP component.
This issue affects Apache Camel: from 4.0.0 before 4.18.5, from 4.19.0 before 4.22.1.
The OAuth2 client token cache is global to the JVM, and its key omitted several of the fields that determine what a token actually authorises: the requested scope, the resource indicator, and the token endpoint the token was obtained from. Two endpoints differing only in those fields therefore shared a cache entry, and an endpoint could be served a token minted for a different scope, a different resource, or by a different authorization server. The consequence is a request carrying broader authority than the endpoint was configured for, or a token presented to a party it was not issued for. Reaching it requires a deployment that configures more than one OAuth2 endpoint differing in exactly those fields, which is why the severity is assessed low.
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 cache key now includes every field that shapes the token, so entries are no longer shared between endpoints that differ in any of them. For deployments that cannot upgrade immediately, run endpoints that differ in scope, resource indicator or token endpoint in separate JVMs so that they do not share the cache.
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-104205
GHSA-5q96-qxg9-rmrw
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB