Why AI tools produce this: AI coding tools generate this anti-pattern by default, it appears in a large share of AI-written auth code.
Why this matters
The request looks like a public client (SPA, mobile, or native app) yet carries no code_challenge. Without PKCE, the authorization code can be intercepted and exchanged by an attacker.
RFC 8252 §6 mandates PKCE for native/SPA clients. RFC 9700 (OAuth 2.0 Security BCP) recommends PKCE for ALL clients, including confidential ones, as defence in depth.
Generate a code_verifier (43-128 char), derive code_challenge = BASE64URL-NoPad(SHA256(code_verifier)), send it with code_challenge_method=S256 on the authorize call, and POST the code_verifier on the token call.
If a finding is a genuine false positive, scope the suppression to the exact line and leave a reason, never disable the rule project-wide. Disable directives are line-scoped by design.