Severity: 
    CVSS 3.1: 6.1 (medium) CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N

Affected versions:

- Apache Camel (org.apache.camel:camel-oauth) 4.11.0 before 4.18.5
- Apache Camel (org.apache.camel:camel-oauth) 4.19.0 before 4.22.1

Description:

Cross-Site Request Forgery (CSRF) vulnerability in Apache Camel OAuth component.



This issue affects Apache Camel: from 4.11.0 before 4.18.5, from 4.19.0 before 
4.22.1.

The authorization code callback did not carry a state parameter binding it to 
the authorization request that started the flow, and the callback did not 
verify one. An authorization code obtained in any browser could therefore be 
redeemed at the callback and associated with whichever session presented it, 
which is login cross-site request forgery: a victim can be silently signed in 
as an identity the attacker controls, so that actions the victim then performs, 
and data they then submit, land in the attacker's account. The same unvalidated 
callback handling also allowed the post-authentication redirect target to be 
influenced, giving an open redirect from a trusted origin. The state check runs 
before the authorization code is redeemed, so these paths are reachable without 
any interaction with the identity provider.

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 authorization request now issues a state 
value bound to the session, and the callback rejects a request whose state is 
absent or does not match, stopping the route with a 400 response. For 
deployments that cannot upgrade immediately, terminate the authorization code 
flow in a component that performs its own state binding rather than relying on 
the Camel callback. Note that after upgrading, a deployment behind a proxy that 
drops or rewrites the callback query string will begin to see 400 responses, 
because the state parameter must survive the round trip.

Solution:

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 authorization request now issues a state 
value bound to the session, and the callback rejects a request whose state is 
absent or does not match, stopping the route with a 400 response.

Work Arounds:

For deployments that cannot upgrade immediately, terminate the authorization 
code flow in a component that performs its own state binding rather than 
relying on the Camel callback. Note that after upgrading, a deployment behind a 
proxy that drops or rewrites the callback query string will begin to see 400 
responses, because the state parameter must survive the round trip.

Credit:

Claude Security (finder)
Andrea Cosentino (remediation developer)

References:

https://camel.apache.org/security/CVE-2026-84178.html
https://issues.apache.org/jira/browse/CAMEL-24437
https://github.com/apache/camel/pull/25821
https://github.com/apache/camel/pull/25944
https://github.com/apache/camel/pull/25946
https://camel.apache.org/
https://www.cve.org/CVERecord?id=CVE-2026-84178

Reply via email to