GHSA-44m5-wqhm-rq65
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAcquire access token valid moments earlier
-
ExploitSend request so active introspection result is cached
-
ExecutionContinue presenting same token after its exp passes
-
ImpactRequest admitted with expired token's roles within cache TTL
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V7 - Session Management Session expiration enforcement
|
| Exploitation Conditions | Exploitation requires the KeycloakSecurityPolicy to be configured with useTokenIntrospection=true and the default introspectionCacheEnabled=true; token introspection is not enabled by default, so default deployments are not affected, and the local JWT verification path (introspection disabled) is explicitly unaffected. The caller must hold an access token that the same Camel process introspected and cached while the token was still active; the reuse window after expiry is bounded by introspectionCacheTtl - 60 seconds by default, or 300-600 seconds where the documentation's internal-services recommendation was followed. Limiting factors: the attacker gains nothing beyond what the token already carried (no forgery, no privilege escalation), the window is short, and the condition depends on a token being cached shortly before its exp - lowering introspectionCacheTtl only narrows but does not close the window. |
| Impact | This is a genuine but low-urgency medium-severity issue, and the available signals are mostly weak or absent rather than conflicting. The vendor CVSS is 4.8 (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N): network-reachable but high attack complexity and only low confidentiality/integrity impact. No EPSS score was supplied, there is no CISA KEV listing, and no SSVC decision was provided - the vuln.today Decision label is 'awaiting_data', meaning the prioritization inputs are incomplete rather than pointing to high risk. The real-world risk is constrained by three factors the advisory states plainly: token introspection is NOT enabled by default, so the vulnerable code path is only reached under a deliberate non-default configuration (useTokenIntrospection=true); the issue grants no token forgery and no privilege escalation, only a short extension of access a caller already legitimately held; and the exposure window is bounded by introspectionCacheTtl (60 seconds by default, 300-600 seconds if the internal-service recommendation was followed). One signal to verify: the vendor assigns PR:N (unauthenticated), yet the attack inherently requires possessing an access token that was valid moments earlier and was introspected/cached by the same Camel process while active - i.e. a previously-authenticated credential - so in practice this is closer to a privileged/authenticated prerequisite than a true unauthenticated flaw. Overall this is a correctness/hardening fix (RFC 7662 caching violation) rather than an emergency. |
| Exploit ScenarioDerived | A client application or user holds a bearer access token that camel-keycloak introspected and cached as active shortly before the token's exp time passed. Because the cached introspection result is expired only by insertion-time TTL and never bounded by the token's exp, the caller keeps presenting the same now-expired token in the Authorization header and is still admitted with that token's roles for up to introspectionCacheTtl seconds after expiry. No public exploit identified at time of analysis; the GitHub references are the remediation pull requests, not exploit code, and the high attack complexity reflects the narrow timing window in which a near-expiry token must have been cached. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 23, 2026
Expired OAuth 2.0 access tokens continue to be accepted by the camel-keycloak KeycloakSecurityPolicy when token introspection is enabled (useTokenIntrospection=true) and the default introspection result cache is active. Because both shipped caches (ConcurrentMapTokenCache, CaffeineTokenCache) expire entries on a fixed insertion-time TTL rather than being bounded by the token's exp claim, and KeycloakSecurityProcessor only re-checks the introspection response's active flag, a token cached shortly before it expired remains usable for up to introspectionCacheTtl seconds after expiry - 60 seconds by default, or 300-600 seconds where the documentation's internal-services guidance was followed. An authenticated holder of a token that was valid moments earlier can therefore keep exercising exactly the roles and permissions that token already carried; no forgery or privilege escalation is possible, introspection is not enabled by default, and the local JWT verification path is unaffected. No public exploit code or exploitation activity is identified in the available data, and the overall risk is assessed as medium severity with low urgency.
RemediationAI
Vendor-released patch: upgrade to Apache Camel 4.23.0, or to 4.22.2 if on the 4.22.x stream, or to 4.18.5 if on the 4.18.x stream; these versions bound each cache entry's lifetime by the shorter of introspectionCacheTtl and the time remaining until the token's exp, never serve an already-expired cached result, and make KeycloakSecurityProcessor reject a token whose exp is in the past on every introspection path. Deployments on 4.16.x, 4.17.x or 4.19.x through 4.21.x must move to a supported release because those lines are end of life and will not be fixed. For deployments that cannot upgrade immediately, set introspectionCacheEnabled=false on the KeycloakSecurityPolicy so every request is re-checked against the introspection endpoint, which reports expired tokens as inactive; the trade-off is one introspection call per request against Keycloak, adding latency and load to the identity provider. Lowering introspectionCacheTtl only narrows the post-expiry window and does not close it, so it is not a substitute for disabling the cache or upgrading. Full details are in the vendor advisory at https://camel.apache.org/security/CVE-2026-95663.html.
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 affected code is the camel-keycloak security policy and processor (Maven artifact org.apache.camel:camel-keycloak), which can validate bearer tokens supplied in the Authorization header either locally as JWTs or remotely via Keycloak's OAuth 2.0 token introspection endpoint (RFC 7662). On the introspection path the component sends the caller's token to Keycloak and treats an 'active: true' response as authorization; Keycloak only flips that flag to false once the token's exp time passes, so the active flag is the sole expiry enforcement on this path. Introspection responses are cached by default (introspectionCacheEnabled=true, introspectionCacheTtl=60 seconds), and CAMEL-24902 documents that CaffeineTokenCache used expireAfterWrite(ttl) while ConcurrentMapTokenCache stored expirationTime = now + ttlMillis - neither considered the exp value already present in KeycloakTokenIntrospector.IntrospectionResult#getExpiration(), and KeycloakSecurityProcessor checked only the active flag, never comparing exp against the current time. This violates RFC 7662's rule that a response carrying exp must not be cached beyond that time, and the root cause class is CWE-613 (Insufficient Session Expiration). It is a distinct but thematically related defect to CVE-2026-46455, which concerned the missing TokenVerifier.IS_ACTIVE check on the separate local JWT verification helper path; that helper issue does not affect the introspection path and this issue does not affect local JWT verification. Exploitation requires a non-default configuration (useTokenIntrospection=true with the cache left enabled) and a token that the same Camel process introspected and cached while it was still valid; the reuse window is bounded by the configured TTL, which is why the issue is rated medium rather than high.
Know when the next one hits your stack
- 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
Network-reachable but the attacker must already possess a recently-valid introspected token (PR:L) and depend on the narrow near-expiry caching window (AC:H); only the token's existing low C/I impact persists, A:N.
Primary rating from Vendor (CNA).
CVSS VectorVendor
Lifecycle Timeline
2Description PRE-NVD
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
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
EUVD-2026-109670
NVD
CVE.org
EPSS
Exploit-DB