Bug 2508305 (CVE-2026-18209) - CVE-2026-18209 keycloak-services: keycloak-services: OIDC redirect_uri fragment bypass in HTTP parameter pollution check
Summary: CVE-2026-18209 keycloak-services: keycloak-services: OIDC redirect_uri fragme...
Keywords:
Status: NEW
Alias: CVE-2026-18209
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Product Security
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-07-29 08:20 UTC by OSIDB Bzimport
Modified: 2026-07-31 07:03 UTC (History)
28 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2026-07-29 08:20:08 UTC
An incomplete fix for CVE-2026-9689 was identified in Keycloak's RedirectUtils.containsForbiddenOidcParameters() method. While the original fix successfully blocks forbidden OIDC parameters (such as code, state, and iss) in the URI query string, it fails to inspect the URI fragment (#).
When a client is configured with a wildcard redirect URI, an attacker can supply a redirect_uri containing these forbidden parameters within the fragment. Because matchesRedirects strips fragments during prefix matching, the crafted URI is accepted. During the authorization response, Keycloak appends its own parameters to the attacker-supplied fragment, leading to a polluted response where attacker-controlled values appear first.
Exploitation Conditions:
The target client must have a wildcard-registered redirect URI (e.g., https://app.example.com/*).

The attacker must induce a victim to follow a crafted authorization URL.

The relying party (client application) must use a first-wins parsing strategy for duplicate parameters.


Concrete Impact:
Injection of attacker-controlled iss (issuer), state, and access_token parameters.

Potential for session fixation or account confusion if the relying party does not validate parameters per RFC 9207.


Note You need to log in before you can comment on or make changes to this bug.