CVE-2026-9087 Keycloak: cross-session email verification proof not bound to upstream identity in first-broker-login
Attackers can link a second upstream identity to a victim's local account by reusing cross-session verification proofs, leading to account takeover.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2026-9087?
CVE-2026-9087 is a medium-severity authentication bypass vulnerability in Redhat Build of Keycloak, published on 20 May 2026. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link.
Official description
A flaw was found in Keycloak. The cross-session verification proof is keyed only by (local userId, idpAlias) and is not bound to the upstream identity that was actually verified, so a second upstream account on the same IdP can consume it and get linked to the victim's local account.
Weakness: CWE-639
Which versions are affected by CVE-2026-9087?
2 open source packages ship an affected version, including org.keycloak:keycloak-services. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
org.keycloak:keycloak-services Maven | All versions | 26.6.3 |
org.keycloak:keycloak-services Maven | All versions | 26.6.3 |
Products include Redhat Build of Keycloak.
How do I fix CVE-2026-9087?
Upgrade org.keycloak:keycloak-services to 26.6.3 or later.
Upgrade, and rotate credentials and sessions that may have been exposed. More about Authentication bypass.
Is CVE-2026-9087 being exploited?
There is no known exploitation of CVE-2026-9087 in the wild and no public exploit code.
Other vulnerabilities in Redhat Build of Keycloak
- CVE-2026-15572 Keycloak-services: keycloak-services: dcr protocol mapper type-swap policy bypass allows privilege escalation
- CVE-2026-3047 Keycloak SAML Broken has Authentication Bypass by Primary Weakness
- CVE-2026-15573 Keycloak-services: keycloak-services: authorization bypass via unnormalized uri matching in pathmatcher
- CVE-2026-16102 Keycloak-services: keycloak-services: default dcr policy allows role forgery via user property mappers
- CVE-2026-1609 Org.keycloak/keycloak-quarkus-server: keycloak: unauthorized access via jwt authorization grant with disabled users
Sources
Also known as ECHO-b2e2-7f87-b426, GHSA-m6qj-3mpp-57v8, MINI-7r72-f98m-fxc6, MINI-wgc3-wr2v-qc67.