CVE-2026-9802
Keycloak: keycloak: unauthorized account access via replayed refresh tokens after cluster restart
A flaw was found in Keycloak. When revokeRefreshToken=true is enabled and persistent session storage is in use, a server restart can reset internal timing mechanisms. This allows a remote attacker, who has previously captured a user's refresh token, to replay that token even after it has been revoked. Successful exploitation grants the attacker unauthorized access to the victim's account, potentially leading to information disclosure or privilege escalation.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- None
- User interaction
- Required
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
6.8
Keycloak: keycloak: unauthorized account access via replayed refresh tokens after cluster restart
A flaw was found in Keycloak. When revokeRefreshToken=true is enabled and persistent session storage is in use, a server restart can reset internal timing mechanisms. This allows a remote attacker, who has previously captured a user's refresh token, to replay that token even after it has been revoked. Successful exploitation grants the attacker unauthorized access to the victim's account, potentially leading to information disclosure or privilege escalation.
- Record
CVE-2026-9802- CVSS 3.1
- 6.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N - Weakness
- CWE-613
- Updated
- 2026-11-02
EUVDEUVD-2026-32720
6.8
A flaw was found in Keycloak. When revokeRefreshToken=true is enabled and persistent session storage is in use, a server restart can reset internal timing mechanisms. This allows a remote attacker, who has previously captured a user's refresh token, to replay that token even after it has been revoked. Successful exploitation grants the attacker unauthorized access to the victim's account, potentially leading to information disclosure or privilege escalation.
- Record
EUVD-2026-32720- CVSS 3.1
- 6.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-v5g5-wwmp-jppw
6.8
Keycloak has Insufficient Session Expiration
A flaw was found in Keycloak. When revokeRefreshToken=true is enabled and persistent session storage is in use, a server restart can reset internal timing mechanisms. This allows a remote attacker, who has previously captured a user's refresh token, to replay that token even after it has been revoked. Successful exploitation grants the attacker unauthorized access to the victim's account, potentially leading to information disclosure or privilege escalation.
- Record
GHSA-v5g5-wwmp-jppw- CVSS 3.1
- 6.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N - Weakness
- CWE-613
- Updated
- 2026-11-02
NVD
6.8
A flaw was found in Keycloak. When revokeRefreshToken=true is enabled and persistent session storage is in use, a server restart can reset internal timing mechanisms. This allows a remote attacker, who has previously captured a user's refresh token, to replay that token even after it has been revoked. Successful exploitation grants the attacker unauthorized access to the victim's account, potentially leading to information disclosure or privilege escalation.
- Record
CVE-2026-9802- CVSS 3.1
- 6.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N - Weakness
- CWE-613
- Updated
- 2026-11-02
OSVGHSA-v5g5-wwmp-jppw
6.8
Keycloak has Insufficient Session Expiration
A flaw was found in Keycloak. When revokeRefreshToken=true is enabled and persistent session storage is in use, a server restart can reset internal timing mechanisms. This allows a remote attacker, who has previously captured a user's refresh token, to replay that token even after it has been revoked. Successful exploitation grants the attacker unauthorized access to the victim's account, potentially leading to information disclosure or privilege escalation.
- Record
GHSA-v5g5-wwmp-jppw- CVSS 3.1
- 6.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N - Weakness
- CWE-613
- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
org.keycloak:keycloak-servicesMaven |
through 26.4.7 | None known |
org.keycloak:keycloak-servicesMaven |
26.5.0 up to 26.6.3 | 26.6.3 |
org.keycloak:keycloak-servicesMaven |
through 26.4.7, plus listed versions 1.0-alpha-11.0-alpha-1-120620131.0-alpha-21.0-alpha-31.0-alpha-4 Show 45 moreShow less1.0-beta-11.0-beta-1-201505211.0-beta-1-201505231.0-beta-21.0-beta-31.0-beta-41.0-final1.0-rc-11.0-rc-21.0.1.Final1.0.2.Final1.0.3.Final1.0.4.Final1.0.5.Final1.1.0.Beta11.1.0.Beta21.1.0.Final1.1.1.Final1.2.0.Beta11.2.0.CR11.2.0.Final1.3.0.Final1.3.1.Final1.4.0.Final1.5.0-Final1.5.0.Final1.5.1.Final1.6.0.Final1.6.1.Final1.7.0.CR11.7.0.Final1.8.0.Alpha11.8.0.CR11.8.0.CR21.8.0.CR31.8.0.Final1.8.1.Final1.9.0.CR11.9.0.Final1.9.1.Final1.9.2.Final1.9.3.Final1.9.4.Final1.9.5.Final1.9.7.Final |
None known |
org.keycloak:keycloak-servicesMaven |
26.5.0 up to 26.6.3, plus listed versions 26.5.126.5.226.5.326.5.426.5.5 Show 5 moreShow less26.5.626.5.726.6.026.6.126.6.2 |
26.6.3 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-9802 is a medium vulnerability (CVSS 6.8) in Red Hat Build Of Keycloak 26.4, published May 28, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.30%, the 22nd percentile. Fixed in org.keycloak:keycloak-services 26.6.3.
References
access.redhat.com/errata/RHSA-2026:25097
access.redhat.com/errata/RHSA-2026:25098
access.redhat.com/errata/RHSA-2026:30049
access.redhat.com/errata/RHSA-2026:30050
access.redhat.com/security/cve/CVE-2026-9802
bugzilla.redhat.com/show_bug.cgi?id=2482467
Show 10 moreShow less
nvd.nist.gov/vuln/detail/CVE-2026-9802
github.com/keycloak/keycloak/issues/49426
github.com/keycloak/keycloak/pull/49542
github.com/keycloak/keycloak/pull/49619
github.com/keycloak/keycloak/pull/49620
github.com/keycloak/keycloak/commit/165df48d3f0f42ede8e6082184892ca7cc703989
github.com/keycloak/keycloak/commit/3451217e3837ce5e8bbcac2773f0ac44830b95f1
github.com/keycloak/keycloak/commit/3fde018b98e2729a594a3ac7fc730fde31da2f07
github.com/advisories/GHSA-v5g5-wwmp-jppw
github.com/keycloak/keycloak
Left out here: 165 versions. The JSON record has them.