Skip to content

Releases: zitadel/zitadel

v4.20.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 10:18
8afa5dd

4.20.0 (2026-10-22)

⚠️ Upgrade notes

  • Go 1.26: ZITADEL is now built with Go 1.26.10. Outbound TLS connections (SMTP, external IdPs, Actions and webhook targets, HTTP SMS providers) no longer accept certificate chains through the compromised eMudhra intermediate CAs (#12969); affected endpoints need a new certificate, the check can't be disabled. Go 1.26 also rejects URLs with invalid colons in the host and offers post-quantum hybrid key exchanges in TLS by default. If a configured URL or outbound connection stops working, GODEBUG=urlstrictcolons=0 or GODEBUG=tlssecpmlkem=0 restores the previous behavior.
  • Login V2: the device code check is now signed with ZITADEL_SESSION_COOKIE_SECRET, like the other login proofs. Users in the middle of a device authorization during the upgrade have to enter the user code again.

Bug Fixes

Features

  • login: configurable text if external user can neither be create… (#12724) (fb4bc84), closes #12723

Performance Improvements

  • query: skip empty login-name pattern SubSelect (#12927) (f8ddee1)

v4.19.5

Choose a tag to compare

@github-actions github-actions released this 15 Oct 09:40
a618740

4.19.5 (2026-10-15)

⚠️ Upgrade notes

  • Device authorization: users now confirm the device on a consent screen. If a project requires a grant to authenticate, users without one can no longer sign in through the device flow. Custom login UIs need the session.read permission for GetDeviceAuthorizationRequest.
  • Login V2: email and invite verification, passkey registration and IdP linking are now also protected by ZITADEL_SESSION_COOKIE_SECRET. If you use a value from an example configuration (e.g. SessionCookieSecretNeedsAtLeast32Chars from the compose .env.example), replace it with a random one. Users in the middle of one of these steps during the upgrade have to repeat it.
  • List limits: list endpoints now enforce the default and maximum query limits (A10018).

Bug Fixes

v4.19.4

Choose a tag to compare

@github-actions github-actions released this 01 Oct 13:03
101343a

4.19.4 (2026-10-01)

Bug Fixes

  • actions: set instance ID in async execution worker context (#12730) (03a2469), closes #11985
  • notification: correct ID order of the invite code sent handler (#12846) (101343a)
  • skip finalized unique-constraint backfill and exclusive owner deletes (#12833) (aee8b88), closes #12831 #12834

v4.19.3

Choose a tag to compare

@github-actions github-actions released this 29 Sep 16:16
2c6acd8

4.19.3 (2026-09-29)

Performance Improvements

v4.19.2

Choose a tag to compare

@github-actions github-actions released this 28 Sep 06:27
2c37c41

This release fixes three security vulnerabilities. We recommend all 4.x deployments upgrade.

Security

⚠️ Upgrade notes for the Login UI (Login V2)

Login V2 now signs its session cookie. Before or while upgrading:

  • Set ZITADEL_SESSION_COOKIE_SECRET on the Login UI, for example openssl rand -base64 32. It must be at least 32 characters and the same on all replicas. A shorter value makes the Login UI report not ready. A comma-separated list allows rotating the secret without signing users out.
  • Without the secret the Login UI keeps working: it derives the signing key from its API credential and logs a deprecation warning at startup. Rotating that credential then signs all users out of the Login UI.
  • Users sign in once more: existing cookies carry no signature and are ignored, so users have to sign in to the Login UI again after the upgrade, possibly more than once during a rolling deployment. Application sessions and issued tokens are not affected.

The Docker Compose deployment now sets the secret through LOGIN_SESSION_COOKIE_SECRET. Login V1 is not affected. See Session cookie signing for details, including how to rotate the secret.


4.19.2 (2026-09-28)

Bug Fixes

  • idp: reject SAML assertions from a different IdP than the intent (450c056)
  • login: sign session cookie entries (6e4a3d4)
  • oidc: require admin.impersonation to impersonate administrators (2c37c41)

Performance Improvements

v4.19.1

Choose a tag to compare

@github-actions github-actions released this 23 Sep 16:33
7695976

4.19.1 (2026-09-23)

Bug Fixes

  • setup step 79 batch unique constraint owner backfill (#12803) (42cdd5d)

v4.19.0

Choose a tag to compare

@github-actions github-actions released this 23 Sep 05:36
765027e

4.19.0 (2026-09-23)

Bug Fixes

Features

  • eventstore: remove application constraints by app owner (#12798) (765027e)

v4.18.0

Choose a tag to compare

@github-actions github-actions released this 21 Sep 11:56

⚠️ Please skip this release and use v4.19.0. The setup step fails in this version (issue).

4.18.0 (2026-09-21)

Bug Fixes

Features

Performance Improvements

  • query: use UNION of index seeks for ListUsers login equality (#12701) (c0b17e0), closes #12460

v4.17.3

Choose a tag to compare

@github-actions github-actions released this 04 Sep 06:44
41b1114

4.17.3 (2026-09-04)

Bug Fixes

  • crypto: use authenticated encryption for IDP intent tokens (41b1114)
  • login: authorize IDP linking via enrollment guard, not isSessionValid (a53fbc4)
  • login: translate authentication and OTP strings (#12668) (739e91e), closes #12481 #12226
  • security: check auth method permission on the user's organization (20f0984)

v4.17.2

Choose a tag to compare

@github-actions github-actions released this 31 Aug 09:04
35aa213

4.17.2 (2026-08-31)

Bug Fixes