CVE-2023-22492: Zitadel RefreshToken invalidation vulnerability
5.9
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.24324%
CWE
Published
1/11/2023
Updated
1/24/2023
KEV Status
No
Technology
Go
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:H/A:N
| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| github.com/zitadel/zitadel | go | >= 2.17.0, < 2.17.3 | 2.17.3 |
| github.com/zitadel/zitadel | go | >= 2.0.0, < 2.16.4 | 2.16.4 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stemmed from two key flaws: 1) Token issuance allowed non-active users due to a weak state check (isUserStateExists instead of explicit active state check). 2) Token refresh logic didn't properly respond to account status changes (locked/deactivated). The commit fixes these by: a) Changing the user state check to require UserStateActive in addUserToken, and b) Adding explicit handling of deactivation/lock events in the token write model's Reduce method to mark tokens as invalid.