CVE-2023-6563 is a high-severity (CVSS 7.7) CWE-770 vulnerability in org.keycloak:keycloak-model-jpa. 1 public exploit or proof-of-concept reference is indexed, so weaponization risk is real. A fix is available for org.keycloak:keycloak-model-jpa — see the affected versions and patch details below.
Keycloak: offline session token dos
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
Where this sits among everything scored
Real-World Exposure
org.keycloak:keycloak-model-jpaReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Maven packages — download data is not available via public APIs for these ecosystems.
Description
An unconstrained memory consumption vulnerability was discovered in Keycloak. It can be triggered in environments which have millions of offline tokens (> 500,000 users with each having at least 2 saved sessions). If an attacker creates two or more user sessions and then open the "consents" tab of the admin User Interface, the UI attempts to load a huge number of offline client sessions leading to excessive memory and CPU consumption which could potentially crash the entire system.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| ☕Maven | org.keycloak:keycloak-model-jpa | all versions | 21.0.0org.keycloak:keycloak-model-jpa:21.0.0 |
Affected Products
keycloakredhatopenshift container platformredhatopenshift container platform for ibm linuxoneredhatopenshift container platform for powerredhatsingle sign-onredhatResearch use only. For defensive security, authorized penetration testing, and academic research only. Never execute exploit code against systems without explicit written authorization.
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for org.keycloak:keycloak-model-jpa, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update org.keycloak:keycloak-model-jpa to 21.0.0 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2023-6563 is resolved across your whole dependency graph.
Workarounds
Cap what an attacker can consume: apply request size, rate and timeout limits in front of the affected component, and run it with memory and CPU limits so exhaustion degrades one worker rather than the whole service.
Fixing This On Your OS
If you run this on a Linux distribution, patch through your package manager against the distro's own security advisory below — it tracks the exact backported fix for your release, which can ship on a different timeline (and sometimes a different severity) than the upstream project.
While this vulnerability can enable complete compromise of system availability, it is not possible to be triggered in every environment. The impact is rated as Important due to several preconditions (number of users and how many sessions each user has) which are beyond an attacker's control.
There are three main options to prevent exploitation: 1) If you are using a reverse proxy, block the consents URL. 2) This option is less effective: remove the consents application tab from the account console theme. 3) This option has a significant negative impact on end users: entirely disable offline user profiles.Source: Red Hat security advisory for CVE-2023-6563 (CC BY 4.0)
| Product | Fixed in | Advisory |
|---|---|---|
| Red Hat Single Sign-On 7.6 for RHEL 7 | rh-sso7-keycloak-0:18.0.11-2.redhat_00003.1.el7sso | RHSA-2023:7854 |
| Red Hat Single Sign-On 7.6 for RHEL 8 | rh-sso7-keycloak-0:18.0.11-2.redhat_00003.1.el8sso | RHSA-2023:7856 |
| Red Hat Single Sign-On 7.6 for RHEL 9 | rh-sso7-keycloak-0:18.0.11-2.redhat_00003.1.el9sso | RHSA-2023:7855 |
| RHEL-8 based Middleware Containers | rh-sso-7/sso76-openshift-rhel8:7.6-38 | RHSA-2023:7857 |
| Single Sign-On 7.6.6 | rh-sso7-keycloak | RHSA-2023:7858 |
Frequently Asked Questions
Is CVE-2023-6563 in your dependencies?
Find it across Maven, including transitive dependencies.