GHSA-qvc3-6q9x-95pj
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Network-reachable endpoint, default config is vulnerable (AC:L), no credential needed to send a non-null Bearer string (PR:N), full access to protected route yields high C/I/A.
Primary rating from Vendor (CNA).
CVSS VectorVendor
Lifecycle Timeline
3Blast Radius
ecosystem impact- 4 maven packages depend on org.apache.camel:camel-keycloak (2 direct, 2 indirect)
Ecosystem-wide dependent count for version 4.15.0.
Description PRE-NVD
Articles & Coverage 5
AnalysisAI
Authentication bypass in Apache Camel's camel-keycloak component (versions 4.15.0-4.18.2 and 4.19.0-4.20.x) allows any caller presenting a non-null Authorization: Bearer header value - including an arbitrary string or a forged, unsigned JWT - to bypass Keycloak token verification entirely and access routes protected by KeycloakSecurityPolicy. The cryptographic token checks (signature, issuer, expiry) are embedded exclusively inside role and permission validation routines that are never invoked when requiredRoles and requiredPermissions are empty, which is the documented default 'Basic Setup.' Where the protected route connects to a code-execution-capable Camel producer, this authentication bypass can escalate to unauthenticated remote code execution; no public exploit has been identified at time of analysis.
Technical ContextAI
The vulnerability resides in KeycloakSecurityProcessor.beforeProcess(), the entry-point processor for KeycloakSecurityPolicy in org.apache.camel:camel-keycloak. The processor runs three checks in sequence: (1) reject requests with no Bearer token, (2) validate roles only if requiredRoles is non-empty, and (3) validate permissions only if requiredPermissions is non-empty. The entire cryptographic verification of the bearer token - JWT signature validation, issuer and expiry checks for local JWTs, or active-state and issuer validation for token introspection against Keycloak - is embedded exclusively within checks (2) and (3). Since both requiredRoles and requiredPermissions default to empty per the documented Basic Setup, neither secondary check executes, and token verification is never reached. This is a structural CWE-636 (Not Failing Securely / Fail-Open) and CWE-306 (Missing Authentication for Critical Function) pattern: the security gate silently grants access in its default state. The setting allowTokenFromHeader also defaults to true, so tokens are read from the inbound HTTP Authorization: Bearer header, making the attack surface network-reachable without any special delivery mechanism. This defect is structurally distinct from CVE-2026-23552, which added an issuer check inside the verification routine - here the verification routine is never entered at all, so that earlier fix did not address this bypass path.
RemediationAI
Upgrade to Apache Camel 4.18.3 if on the 4.18.x LTS stream, or to 4.21.0 for the latest release stream; both were released in early July 2026 and confirmed by the Apache Camel security advisory at https://camel.apache.org/security/CVE-2026-53913.html to contain the fix. The fix restructures KeycloakSecurityProcessor.beforeProcess() so that cryptographic token authentication always executes when a Bearer token is present, independently of role and permission configuration; role and permission checks now run only after successful authentication, and an invalid or unverifiable token is rejected identically to a missing token (the fix is in GitHub PR #23958, commit 1477cb4e87b2c301f1cdcddca5b153fbbef6934b on main, and backported to camel-4.18.x as commit b62170072348cc4073ddf705ad716aa3678d6c09). For deployments that cannot upgrade immediately, three compensating controls are available: first, configure a non-empty requiredRoles or requiredPermissions on every KeycloakSecurityPolicy - this forces the verification path to execute, but introduces a role management burden and may restrict legitimate access if roles are not correctly assigned to all callers; second, set allowTokenFromHeader to false where tokens are not expected from the HTTP request header - this blocks the primary attack vector but may break existing header-based authentication flows for legitimate clients; third, perform token verification at the framework layer (e.g., an API gateway or Camel interceptor/filter) upstream of the KeycloakSecurityPolicy - this adds defense-in-depth but requires careful scope to ensure no routes are inadvertently left unprotected by the upstream verifier. JIRA ticket CAMEL-23738 contains additional commit-level detail.
Bypass/Injection vulnerability in Apache Camel components under particular conditions.10.0 through <= 4.10.1, from 4.8.0
The XSLT component in Apache Camel before 2.11.4 and 2.12.x before 2.12.3 allows remote attackers to read arbitrary file
Apache Camel's Jackson and JacksonXML unmarshalling operation are vulnerable to Remote Code Execution attacks. Rated cri
The XSLT component in Apache Camel 2.11.x before 2.11.4, 2.12.x before 2.12.3, and possibly earlier versions allows remo
Cross-realm token acceptance bypass in Apache Camel Keycloak security policy. The KeycloakSecurityPolicy fails to proper
Deserialization of Untrusted Data vulnerability in Apache Camel LevelDB component. The Camel-LevelDB DefaultLevelDBSeria
Unsafe Java deserialization in the Apache Camel camel-mina component (versions 3.0.0 through 4.14.5, 4.15.0 through 4.18
Apache Camel's File is vulnerable to directory traversal. Rated high severity (CVSS 7.5), this vulnerability is remotely
The camel-castor component in Apache Camel 2.x before 2.19.4 and 2.20.x before 2.20.1 is vulnerable to Java object de-se
The camel-xstream component in Apache Camel before 2.15.5 and 2.16.x before 2.16.1 allow remote attackers to execute arb
The camel-hessian component in Apache Camel 2.x before 2.19.4 and 2.20.x before 2.20.1 is vulnerable to Java object de-s
Apache Camel before 2.9.7, 2.10.0 before 2.10.7, 2.11.0 before 2.11.2, and 2.12.0 allows remote attackers to execute arb
Same weakness CWE-287 – Improper Authentication
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-41847