CVE-2023-48228
OAuth2: PKCE can be fully circumvented
authentik is an open-source identity provider. When initialising a oauth2 flow with a code_challenge and code_method (thus requesting PKCE), the single sign-on provider (authentik) must check if there is a matching and existing code_verifier during the token step. Prior to versions 2023.10.4 and 2023.8.5, authentik checks if the contents of code_verifier is matching only when it is provided. When it is left out completely, authentik simply accepts the token request with out it; even when the flow was started with a code_challenge. authentik 2023.8.5 and 2023.10.4 fix this issue.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
7.5
OAuth2: PKCE can be fully circumvented
authentik is an open-source identity provider. When initialising a oauth2 flow with a code_challenge and code_method (thus requesting PKCE), the single sign-on provider (authentik) must check if there is a matching and existing code_verifier during the token step. Prior to versions 2023.10.4 and 2023.8.5, authentik checks if the contents of code_verifier is matching only when it is provided. When it is left out completely, authentik simply accepts the token request with out it; even when the flow was started with a code_challenge. authentik 2023.8.5 and 2023.10.4 fix this issue.
- Record
CVE-2023-48228- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-287
- Updated
- 2026-11-02
EUVDEUVD-2023-52300
7.5
authentik is an open-source identity provider. When initialising a oauth2 flow with a code_challenge and code_method (thus requesting PKCE), the single sign-on provider (authentik) must check if there is a matching and existing code_verifier during the token step. Prior to versions 2023.10.4 and 2023.8.5, authentik checks if the contents of code_verifier is matching only when it is provided. When it is left out completely, authentik simply accepts the token request with out it; even when the flow was started with a code_challenge. authentik 2023.8.5 and 2023.10.4 fix this issue.
- Record
EUVD-2023-52300- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-03
NVD
7.5
authentik is an open-source identity provider. When initialising a oauth2 flow with a code_challenge and code_method (thus requesting PKCE), the single sign-on provider (authentik) must check if there is a matching and existing code_verifier during the token step. Prior to versions 2023.10.4 and 2023.8.5, authentik checks if the contents of code_verifier is matching only when it is provided. When it is left out completely, authentik simply accepts the token request with out it; even when the flow was started with a code_challenge. authentik 2023.8.5 and 2023.10.4 fix this issue.
- Record
CVE-2023-48228- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-287
- Updated
- 2026-11-02
OSV
7.5
OAuth2: PKCE can be fully circumvented
authentik is an open-source identity provider. When initialising a oauth2 flow with a code_challenge and code_method (thus requesting PKCE), the single sign-on provider (authentik) must check if there is a matching and existing code_verifier during the token step. Prior to versions 2023.10.4 and 2023.8.5, authentik checks if the contents of code_verifier is matching only when it is provided. When it is left out completely, authentik simply accepts the token request with out it; even when the flow was started with a code_challenge. authentik 2023.8.5 and 2023.10.4 fix this issue.
- Record
CVE-2023-48228- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-287
- Updated
- 2026-11-02
OSVBIT-authentik-2023-48228 No score
OAuth2: PKCE can be fully circumvented
authentik is an open-source identity provider. When initialising a oauth2 flow with a code_challenge and code_method (thus requesting PKCE), the single sign-on provider (authentik) must check if there is a matching and existing code_verifier during the token step. Prior to versions 2023.10.4 and 2023.8.5, authentik checks if the contents of code_verifier is matching only when it is provided. When it is left out completely, authentik simply accepts the token request with out it; even when the flow was started with a code_challenge. authentik 2023.8.5 and 2023.10.4 fix this issue.
- Record
BIT-authentik-2023-48228- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
authentikBitnami |
before 2023.8.5, 2023.10.0 up to 2023.10.4 | 2023.8.52023.10.4 |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases, published | EUVD | |
| first indexed | CVE List, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2023-48228 is a high vulnerability (CVSS 7.5) in Goauthentik Authentik, published November 21, 2023. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.25%, the 69th percentile. Fixed in authentik 2023.8.5.
References
github.com/goauthentik/authentik/security/advisories/GHSA-fm34-v8xq-f2c3
github.com/goauthentik/authentik/pull/7666
github.com/goauthentik/authentik/pull/7668
github.com/goauthentik/authentik/pull/7669
github.com/goauthentik/authentik/commit/3af77ab3821fe9c7df8055ba5eade3d1ecea03a6
github.com/goauthentik/authentik/commit/6b9afed21f7c39f171a4a445654cfe415bba37d5
Show 6 moreShow less
github.com/goauthentik/authentik/commit/b88e39411c12e3f9e04125a7887f12354f760a14
github.com/goauthentik/authentik/blob/dd4e9030b4e667d3720be2feda24c08972602274/authentik/providers/oauth2/views/token.py
github.com/goauthentik/authentik/releases/tag/version%2F2023.10.4
github.com/goauthentik/authentik/releases/tag/version%2F2023.8.5
nvd.nist.gov/vuln/detail/CVE-2023-48228
github.com/CVEProject/cvelistV5/tree/main/cves/2023/48xxx/CVE-2023-48228.json