CVE-2025-31123 json
Zitadel Expired JWT Keys Usable for Authorization Grants
published last yr. modified 4mo ago also EUVD-2025-8872
- cvss
- 8.7
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 34%
- public exploits
- 0
- none known
Summary
Zitadel is open-source identity infrastructure software. A vulnerability existed where expired keys can be used to retrieve tokens. Specifically, ZITADEL fails to properly check the expiration date of the JWT key when used for Authorization Grants. This allows an attacker with an expired key to obtain valid access tokens. This vulnerability does not affect the use of JWT Profile for OAuth 2.0 Client Authentication on the Token and Introspection endpoints, which correctly reject expired keys. This vulnerability is fixed in 2.71.6, 2.70.8, 2.69.9, 2.68.9, 2.67.13, 2.66.16, 2.65.7, 2.64.6, and 2.63.9.
Patch / fix
- zitadel zitadel 2.63.9, 2.64.6, 2.65.7, 2.66.16, 2.67.13, 2.68.9, 2.69.9, 2.70.8, 2.71.6
- github.com/zitadel/zitadel@315503b commit
- github.com/zitadel/zitadel/releases/tag/v2.63.9 release
- github.com/zitadel/zitadel/releases/tag/v2.64.6 release
- github.com/zitadel/zitadel/releases/tag/v2.65.7 release
- github.com/zitadel/zitadel/releases/tag/v2.66.16 release
- github.com/zitadel/zitadel/releases/tag/v2.67.13 release
- github.com/zitadel/zitadel/releases/tag/v2.68.9 release
- github.com/zitadel/zitadel/releases/tag/v2.69.9 release
- github.com/zitadel/zitadel/releases/tag/v2.70.8 release
- github.com/zitadel/zitadel/releases/tag/v2.71.6 release
Is CVE-2025-31123 in your stack? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- last yr.
Exploit prediction
0.40% chance of exploitation in the next 30 days, higher than 34% of all scored CVEs (FIRST EPSS, 2026-11-09).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 8.7 | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:N |
Affected products
- zitadel zitadel
Classification
- Weakness
-
- CWE-324 Use of a Key Past its Expiration Date
References
-
github.com
/zitadel/zitadel/commit/315503beabd679f2e6aec0c004f0f9d2f5b53ed3
patch
-
github.com
/zitadel/zitadel/security/advisories/GHSA-h3q7-347g-qwhf
vendor-advisory
-
github.com
/zitadel/zitadel/releases/tag/v2.63.9
release-notes
-
github.com
/zitadel/zitadel/releases/tag/v2.64.6
release-notes
-
github.com
/zitadel/zitadel/releases/tag/v2.65.7
release-notes
-
github.com
/zitadel/zitadel/releases/tag/v2.66.16
release-notes
-
github.com
/zitadel/zitadel/releases/tag/v2.67.13
release-notes
-
github.com
/zitadel/zitadel/releases/tag/v2.68.9
release-notes
-
github.com
/zitadel/zitadel/releases/tag/v2.69.9
release-notes
-
github.com
/zitadel/zitadel/releases/tag/v2.70.8
release-notes
-
github.com
/zitadel/zitadel/releases/tag/v2.71.6
release-notes
Sources
- CVE List CVE-2025-31123
- NVD CVE-2025-31123
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.