CVE-2026-9099: Keycloak: group-admin escalation to realm-admin
Telemetry drift only. No threshold crossed and no authority ruling changed.
CVE record, CISA KEV and EPSS as of 2026-10-18.
CVEs like this one computed, by meaning
What to do now held facts and links
- Upgrade to the fixed version for your release line, or later: build of keycloak 26.4.13; build of keycloak 26.6.4 upper bounds of the CVE record's affected ranges
- Later advisories still cover the fixes above and name higher ones: keycloak 26.7.2 (CVE-2026-14613), 26.4.14 (CVE-2026-14614), 26.4.14 (CVE-2026-14615), 26.7.2 (CVE-2026-15571), 26.4.14 (CVE-2026-15572), 26.4.14 (CVE-2026-15573), 26.7.2 (CVE-2026-15945), 26.4.14 (CVE-2026-16071), 26.7.3 (CVE-2026-16072), 26.7.3 (CVE-2026-16089), 26.7.3 (CVE-2026-16093), 26.4.14 (CVE-2026-16102), 26.7.3 (CVE-2026-16104), 26.7.3 (CVE-2026-16105), 26.7.3 (CVE-2026-16106), 26.7.3 (CVE-2026-16108), 26.4.14 (CVE-2026-16442), 26.4.14 (CVE-2026-16443), 26.7.2 (CVE-2026-17048), 26.7.3 (CVE-2026-17059), 26.7.3 (CVE-2026-18201), 26.7.3 (CVE-2026-18209), 26.7.3 (CVE-2026-18214), 26.7.3 (CVE-2026-18215), 26.7.3 (CVE-2026-18218), 26.7.3 (CVE-2026-18570), 26.7.3 (CVE-2026-18571), 26.7.3 (CVE-2026-18572), 26.7.3 (CVE-2026-18573), 26.7.2 (CVE-2026-18963), 26.5.0 (CVE-2026-3009), 26.5.0 (CVE-2026-3047), 26.5.0 (CVE-2026-3872), 26.5.0 (CVE-2026-3911), 26.5.0 (CVE-2026-4282), 26.5.0 (CVE-2026-4325), 26.5.0 (CVE-2026-4634), 26.5.0 (CVE-2026-4636), 26.6.5 (CVE-2026-11986), 26.6.5 (CVE-2026-16100), 26.7.0 (CVE-2026-9800) OSV advisories
- Record your decision, dated and frozen with today's evidence: patch by a date · mitigated by a compensating control · deferred · accepted the risk · not affected
- Check your version against the ranges this record publishes.
What it is stated by the CNA
A flaw was found in Keycloak. A missing authorization check in the GroupResource.addChild() endpoint within the Admin REST API allows an authenticated user with limited administrative privileges to reparent any existing group. When Fine-Grained Admin Permissions v2 (FGAPv2) is enabled, an attacker with management rights over a single low-privilege group can reparent a highly privileged group (such as one possessing the realm-admin role) under their managed group. Because group permissions follow a hierarchical structure, this action unauthorizedly grants the attacker management and password-reset capabilities over the members of the targeted privileged group. An attacker can exploit this to reset an administrator's password, compromise the account, and achieve a full realm takeover, leading to a complete compromise of confidentiality, integrity, and availability.
- weakness
- CWE-639 Authorization Bypass Through User-Controlled Key
- affected
- Red Hat build of Keycloak 26.4; Red Hat build of Keycloak 26.4.13; Red Hat build of Keycloak 26.6; Red Hat build of Keycloak 26.6.4
- published ranges
- redhat build of keycloak >= 26.4 < 26.4.13; redhat build of keycloak >= 26.6 < 26.6.4
- first unaffected version, by branch
- build of keycloak 26.4.13; build of keycloak 26.6.4
- fixed by package (from OSV advisories)
- keycloak (Bitnami): 26.4.13; 26.6.4 BIT-keycloak-2026-9099
- later fixes (from OSV advisories)
- keycloak 26.4.13 is inside a range CVE-2026-14613 (BIT-keycloak-2026-14613) lists as affected. That advisory is fixed in 26.7.2.keycloak 26.4.13 is inside a range CVE-2026-14614 (BIT-keycloak-2026-14614) lists as affected. That advisory is fixed in 26.4.14.keycloak 26.4.13 is inside a range CVE-2026-14615 (BIT-keycloak-2026-14615) lists as affected. That advisory is fixed in 26.4.14.keycloak 26.4.13 is inside a range CVE-2026-15571 (BIT-keycloak-2026-15571) lists as affected. That advisory is fixed in 26.7.2.keycloak 26.4.13 is inside a range CVE-2026-15572 (BIT-keycloak-2026-15572) lists as affected. That advisory is fixed in 26.4.14.keycloak 26.4.13 is inside a range CVE-2026-15573 (BIT-keycloak-2026-15573) lists as affected. That advisory is fixed in 26.4.14.
- severity
- 7.7 CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:N
- assigned by
- redhat
- published
- 2026-06-25
check us access.redhat.com access.redhat.com access.redhat.com access.redhat.com
Exploit code held, dated
- exploit code
- None held in the PoC-in-GitHub feed. A public repository changes this brief.
What moved held, dated
| date | EPSS | event |
|---|---|---|
| 26 Jun 2026 | 0.00269 | |
| 30 Jun 2026 | 0.00275 | |
| 2 Jul 2026 | 0.00288 | |
| 24 Jul 2026 | 0.00289 | |
| 28 Aug 2026 | 0.0049 |
5 observations held. A step marked with a scoring model moved because the measurement was replaced, not because the vulnerability changed.
Outside the record researched, cited
This section reads the record's references and adds cited findings from outside it. It needs an account. Everything above is held facts and is complete without it.
What would change this brief held, dated
- CISA KEV
- Not listed in the catalogue we hold. A listing changes this brief.
- exploit probability
- 0.00 on 2026-08-28 (FIRST's EPSS, a probability and not evidence of exploitation). Next band line: 10% (0.10). Crossing a line changes this brief.
- fix
- Held: build of keycloak 26.4.13; build of keycloak 26.6.4. A newer fix from the CNA or OSV changes this brief.
How to check this
Every value above is held with two dates: when it was true upstream (as_of) and when we recorded it (tx_from). Re-derive the exploit probability as it stood on any date:
SELECT value, source, source_version, as_of, tx_from
FROM volatile_valid_as_of('CVE-2026-9099', '2026-10-29T23:59:59.999999Z', now());