Skip to main content

Keycloak 26.7.3 Released: 20 CVEs, No Fix for 26.4–26.6

· 7 min read
GR Patil
Phase Two

Bottom line: not an emergency, but upgrade this week if you use token exchange with a Google or Microsoft broker, or FGAP v2 to delegate admin rights. On 26.4, 26.5 or 26.6 there is no patch for you today. Keycloak 26.7.3 fixes 20 CVEs — one high, 17 medium, one low, one unrated — plus two breaking changes. Every one needs a delegated admin account, client credentials, or an intercepted authorization code; the single high is in a test-only dependency.

Should you upgrade?​

If your realms…When
Exchange Google or Microsoft tokens via token exchangeThis week. Domain and tenant limits went unenforced.
Delegate admin rights with FGAP v2This week. Six fixes; sub-admins could act outside scope.
Run on 26.4, 26.5 or 26.6Plan the move to 26.7 — no backport is tagged.
Use redirect URIs with state, code or session_stateTest first — now rejected by default.
None of the aboveNext normal cycle.

Security fixes​

CVE / advisorySeverityWhat it is
CVE-2026-35563 / GHSA-85rw-g4f4-jprrhighLDAP client skips TLS hostname check
CVE-2026-18215 / GHSA-v8h5-7wp9-qxxvmedium 6.8Token exchange ignores Microsoft tenant limit
CVE-2026-18214 / GHSA-wmhp-w67v-6jm5medium 6.8Token exchange ignores Google domain limit
CVE-2026-18571 / GHSA-5vmc-qhfj-qxc3medium 6.6User creation adds unpermitted groups
CVE-2026-17059 / GHSA-4w3x-69m8-478cmedium 6.5Role-members endpoint leaks user PII
CVE-2026-18572 / GHSA-mcjq-c4g7-wcfhmedium 6.5Claim token overrides time-policy clock
CVE-2026-18573 / GHSA-wm3j-jpqg-fwv2medium 6.5Client update dodges access-type policy
CVE-2026-79652 / GHSA-9f9p-c2v5-98rxmedium 5.9JWT-bearer grant skips consent
CVE-2026-18201 / GHSA-fvjx-r757-3r6rmedium 5.5IdP creation binds broker to organization
CVE-2026-16093 / GHSA-jmhg-9c54-p575medium 5.4Unsigned header bypasses signed-JWT policy
CVE-2026-16089 / GHSA-63wm-fvw8-h2hpmedium 5.4Auth code redeemable by another client
CVE-2026-18570 / GHSA-r6f5-hj4x-7mq7medium 5.4Omitted field bypasses full-scope policy
CVE-2026-16072 / GHSA-mp76-m6c2-jqh5medium 4.9Org manager creates members via invite
CVE-2026-16105 / GHSA-w32v-46r7-99r7medium 4.9Composite-role endpoints skip authorization
CVE-2026-16106 / GHSA-78mv-phq4-25fvmedium 4.9Delegated admin removes privileged roles
CVE-2026-16108 / GHSA-mvwh-6438-3v8wmedium 4.3Default-group reads disclose hidden groups
CVE-2026-16104 / GHSA-qh48-wwv4-fmr8medium 4.3View-only admin sees reCAPTCHA secrets
CVE-2026-18218 / GHSA-vhxw-j6h3-48jmmedium 4.2Client not-before revocation ignored
CVE-2026-18209 / GHSA-c8xx-fr3x-6m5wlow 3.4Redirect-URI injection via URL fragment
CVE-2026-19729 / noneunratedPath-traversal probing (incomplete 9083 fix)

Counted from the release notes: 20 security bullets, 20 CVE ids.

CVE-2026-18214 and CVE-2026-18215 (medium, 6.8) are the reason to move. If you restricted a Google broker to a Workspace domain or a Microsoft broker to one tenant, token exchange ignored that: a valid token from any other domain bought a Keycloak token.

CVE-2026-35563 (high, 8.8) does not reach a running server. The upstream issue calls it "present in Keycloak's development dependencies", the fix was an ApacheDS test-server upgrade, and org.apache.directory.api appears only under util/embedded-ldap/ and testsuite/. LDAP federation uses JNDI.

CVE-2026-19729 has no advisory, so it carries no severity. Keycloak calls it an incomplete fix for CVE-2026-9083 (GHSA-7pm9-g8jh-3m74) — filesystem probing by a manage-realm admin. Weigh it from NVD.

If you run 26.4, 26.5 or 26.6​

Every advisory here lists affected and patched versions as "Unknown". The upstream issues do better — each carries release/ labels naming the branches its fix is headed for. Checked 2 September:

BranchNewest releaseNewest tagThese fixes
26.726.7.326.7.3all 20
26.626.6.426.6.6 (11 Aug)all 20 labelled 26.6.7 — not tagged yet
26.526.5.726.5.7none labelled
26.426.4.726.4.15 (11 Aug)CVE-2026-19729 only, labelled 26.4.16 — not tagged yet

Keycloak tags backports without publishing a release, so 26.6.6 and 26.4.15 are real despite nothing announcing them, and we publish container images for both. Both predate this work. If a row above applies, the answer is 26.7.3.

Breaking changes​

Two, both in the upgrading guide:

  • OIDC parameters in redirect URIs are rejected by default — those containing state, code or session_state now fail. This is the hardening behind CVE-2026-18209. Escape hatches exist (allow-oidc-params-in-redirect-uris, per-client allow.oidc.params.in.redirect.uris) but are deprecated and go in Keycloak 27.
  • Authorization services claim handling — the kc. prefix is reserved, and user claims using it are filtered before policy evaluation. On a collision, permission-ticket claims beat claim_token claims.

Also deprecated: inviteLink is no longer returned by the organization invitation endpoints — the fix for CVE-2026-16072.

What else changed​

Three of 19 bug fixes matter at many-realm scale: admin API cost growing super-linearly with realm count since 26.7.1 (#51554), lightweight access tokens resolving every role in every realm per admin request (#51707), and sustained high CPU on all nodes (#51523). If your cluster got hot after 26.7.1, this is it — the shape of problem behind our event-storage work.

How to upgrade​

Read the migration changes first; the release notes stop at 26.7.0. Test the redirect-URI change on a staging realm — the only thing here that breaks a working login. Our security docs cover controls several of these CVEs bypassed; Organizations users, note the invitation change.

Rather not schedule it? Our managed Keycloak clusters are patched in our maintenance windows, under SOC 2 Type II and ISO 27001. Talk to us.