PKCE Downgrade Flaws in OAuth Servers Let Attackers Hijack Authorization Codes
Two CVEs filed six months apart — CVE-2023-48228 and CVE-2024-23647 — exposed the same critical flaw in the authentik identity provider, where the server accepted OAuth flows both with and without PKCE enforcement. PKCE (Proof Key for Code Exchange) is designed to bind an authorization code to a client-generated secret, preventing interception attacks on public clients like mobile apps and single-page applications. When servers treat the code_challenge parameter as optional, attackers can strip it from authorization requests, obtain an unbound code, and exchange it at the token endpoint without any verifier. A third vulnerability, CVE-2026-48717 in OpenAM, similarly left PKCE enforcement disabled by default via a realm-wide configuration setting. RFC 9700 mandates enforcement at both the authorization and token endpoints, yet most servers continue to ship with enforcement turned off.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)
Log in to join the discussion and vote.
Log in