Skip to content

Upgrade Keycloak from 26.1.1 to 26.6.3#693

Merged
AlexGodbehere merged 1 commit into
mainfrom
ag/keycloak-26.6
Jul 23, 2026
Merged

Upgrade Keycloak from 26.1.1 to 26.6.3#693
AlexGodbehere merged 1 commit into
mainfrom
ag/keycloak-26.6

Conversation

@AlexGodbehere

Copy link
Copy Markdown
Contributor

Summary

Keycloak 26.1 bundles pgjdbc 42.7.4, whose GSSInputStream assumes every socket read returns a complete GSS token. When TCP segmentation splits a token across reads, decryption fails with "Could not use AES128 Cipher - Checksum failed" and Keycloak crash-loops - which is exactly what took out amrc-fp after routine node maintenance changed the path's segmentation behaviour. Fixed upstream in pgjdbc 42.7.5 (pgjdbc#3373, hardened in #3500); Keycloak 26.6.3 ships 42.7.11 (also covering CVE-2025-49146).

  • acs-keycloak: base image 26.1.1 → 26.6.3.
  • acs-keycloak-spi: rebuilt against 26.6.3 - no source changes needed, all 80 tests pass.
  • Chart: KEYCLOAK_ADMIN/KEYCLOAK_ADMIN_PASSWORDKC_BOOTSTRAP_ADMIN_USERNAME/KC_BOOTSTRAP_ADMIN_PASSWORD (deprecated replacements; only consulted when the master realm has no admin, so inert on established sites).
  • Release notes: one-way schema migration warning and a pointer at the 26.2-26.6 token-endpoint tightening for sites with custom OIDC clients.

Migration notes 26.2-26.6 reviewed against our surface: probes (/health/* on 9000) unchanged, start --optimized=false fine under the stricter validation, jgroups/JDBC_PING unchanged, custom login theme only uses its own resourcesPath (the 26.3 common-resource reshuffle doesn't touch it - verify visually on first deploy), service-setup admin API usage unaffected.

Verified: image builds with the SPI via the CI build contexts, kc.sh build accepts the providers (same benign internal-SPI warnings as 26.1), bundled driver confirmed as pgjdbc 42.7.11.

How to test

  1. Cut a dev release and deploy to ago first (schema migration is one-way - snapshot/backup the keycloak database before upgrading a production site).
  2. Log in to Grafana, the visualiser, and the admin UI via Keycloak; check the login page still renders the ACS theme.
  3. Confirm service-setup completes (realm update, clients, mappers, service-account principals).
  4. Kiosk: mint a client-credentials token and check fp_principal_uuid is present; ?auth_token= login still works.
  5. On amrc-fp specifically: confirm Keycloak stays up past startup (the pgjdbc bug fired within ~40s of every boot there).

🤖 Generated with Claude Code

Keycloak 26.1 bundles pgjdbc 42.7.4, whose GSSInputStream assumes
every socket read returns a complete GSS token; when TCP segmentation
splits a token across reads the decrypt fails ('Could not use AES128
Cipher - Checksum failed') and Keycloak crash-loops. This took out
amrc-fp after routine node maintenance changed the path's
segmentation behaviour - the bug is timing-dependent, so any site
can hit it. Fixed upstream in pgjdbc 42.7.5 (pgjdbc #3373); 26.6.3
ships 42.7.11.

The SPI rebuilds against 26.6 with no source changes (80 tests
pass). The chart moves to the KC_BOOTSTRAP_ADMIN env vars replacing
the KEYCLOAK_ADMIN ones deprecated in Keycloak 26; these are only
consulted when the master realm has no admin, so the change is inert
on established installations. Keycloak migrates its schema one-way
on first start; downgrade requires a database restore.
@AlexGodbehere
AlexGodbehere merged commit 01ff6e2 into main Jul 23, 2026
@AlexGodbehere
AlexGodbehere deleted the ag/keycloak-26.6 branch July 23, 2026 08:45
AlexGodbehere added a commit that referenced this pull request Jul 23, 2026
Promotes the Keycloak 26.6.3 upgrade notes (#693) into a v6.1.4 section.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant