← Security advisories
Apache Camel security advisory

CVE-2026-85301

Camel-Keycloak: issuer validation bypass - the issuer check was skipped rather than failed when the token introspection response carried no iss claim, so a token from an unintended issuer could be accepted

Description

The security processor validated the issuer of an introspected token only when the introspection response actually carried an iss claim. When the claim was absent the check was skipped rather than treated as a failure, so a token that the configured issuer did not mint could be accepted provided the introspection endpoint answered without naming an issuer. Reaching this requires an introspection endpoint that omits iss and accepts tokens from more than one issuer, which is not the default Keycloak arrangement, hence the low severity; where that arrangement exists the consequence is that the deployment authenticates a caller it should have rejected.

Mitigation

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. An absent iss claim is now treated as a validation failure rather than as a reason to skip the check. For deployments that cannot upgrade immediately, ensure the introspection endpoint returns the iss claim, and that it serves exactly one issuer.

Credit

This issue was discovered by Claude Security Scan Tool

Notes

The JIRA ticket: https://issues.apache.org/jira/browse/CAMEL-24448 refers to the various commits that resolved the issue, and has more details.

The fix was merged on main in https://github.com/apache/camel/pull/25827 (commit ee074873e92dde749aa183d26205b92ddc9bde2a), backported to camel-4.22.x in https://github.com/apache/camel/pull/25858 (commit c9e69aae7b374cc38d28c1c8dca744c1ba4d6718) and to camel-4.18.x in https://github.com/apache/camel/pull/25859 (commit aba0f7551e4f63e1f37498454870a49ccdaae727).

The issue is classified as CWE-287 Improper Authentication. The camel-4.14.x line reached end of life before this fix and does not receive it; deployments on 4.14.x should move to 4.18.5 or later.

References