diff --git a/acs-keycloak-spi/pom.xml b/acs-keycloak-spi/pom.xml index 146c13449..1d5516649 100644 --- a/acs-keycloak-spi/pom.xml +++ b/acs-keycloak-spi/pom.xml @@ -24,7 +24,7 @@ the base assumes (lib/X), so acs.top must point at the repo root. --> .. - 26.1.1 + 26.6.3 diff --git a/acs-keycloak/Dockerfile b/acs-keycloak/Dockerfile index 6fc153c52..80c12efe4 100644 --- a/acs-keycloak/Dockerfile +++ b/acs-keycloak/Dockerfile @@ -8,7 +8,12 @@ # * lib -> ../lib (provides java-base-pom and the in-tree mvn repo) # * spi -> ../acs-keycloak-spi (the SPI source tree) -ARG keycloak_version=26.1.1 +# 26.6.3: first line we ship with pgjdbc >= 42.7.5, fixing the +# GSSInputStream partial-read bug (pgjdbc #3373) that corrupts GSS +# encrypted Postgres streams under unlucky TCP segmentation, seen as +# "Could not use AES128 Cipher - Checksum failed" crash loops on +# amrc-fp. Also covers pgjdbc CVE-2025-49146. +ARG keycloak_version=26.6.3 ARG maven_image=docker.io/library/maven:3.9-eclipse-temurin-21 ARG revision=unknown diff --git a/deploy/templates/openid/openid.yaml b/deploy/templates/openid/openid.yaml index 5f7e80e01..3bfffa5c1 100644 --- a/deploy/templates/openid/openid.yaml +++ b/deploy/templates/openid/openid.yaml @@ -112,10 +112,14 @@ spec: - name: KC_HEALTH_ENABLED value: "true" - # Initial admin user (for bootstrapping the realm via service-setup) - - name: KEYCLOAK_ADMIN + # Initial admin user (for bootstrapping the realm via + # service-setup). KC_BOOTSTRAP_ADMIN_* replaced the + # deprecated KEYCLOAK_ADMIN vars in Keycloak 26; only + # consulted when the master realm has no admin yet, so this + # is inert on established installations. + - name: KC_BOOTSTRAP_ADMIN_USERNAME value: _bootstrap - - name: KEYCLOAK_ADMIN_PASSWORD + - name: KC_BOOTSTRAP_ADMIN_PASSWORD valueFrom: secretKeyRef: name: keycloak-clients diff --git a/docs/reference/release-notes.md b/docs/reference/release-notes.md index 9cdd46822..1e8f7dc9b 100644 --- a/docs/reference/release-notes.md +++ b/docs/reference/release-notes.md @@ -8,6 +8,27 @@ chronological order. These changes have not been released yet, but are likely to appear in the next release. +### Keycloak upgraded from 26.1 to 26.6 + +The bundled Keycloak moves to 26.6.3, primarily for its PostgreSQL +JDBC driver (42.7.11): the 42.7.4 driver shipped with Keycloak 26.1 +has a bug (pgjdbc #3373) where the GSS-encrypted database stream is +corrupted by partial TCP reads, crashing Keycloak with "Could not use +AES128 Cipher - Checksum failed" under network conditions that split +GSS tokens across reads. Seen in production; the trigger is +environmental (TCP segmentation behaviour), so any site can hit it. + +Keycloak migrates its database schema one-way on first start of the +new version; downgrading afterwards requires a database restore. The +F+ SPI is rebuilt against 26.6 (no source changes needed) and the +chart now uses the KC_BOOTSTRAP_ADMIN environment variables in place +of the KEYCLOAK_ADMIN ones deprecated in Keycloak 26 (only consulted +when the master realm has no admin, so inert on established sites). +Keycloak 26.2-26.6 also tightens some token-endpoint behaviour +(introspection audience checks, userinfo with lightweight tokens); +none of it affects the flows ACS provisions, but sites with custom +OIDC clients should skim the upstream migration notes. + ## v6.1.3 ### ACL editor shows identity-less principals