JWT.decode is called with its third positional argument set to false, which disables signature verification entirely.
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 library will happily return the claims of any token, including one an attacker forged, so any authorization decision made on the decoded sub / role / scope is trivially bypassed (CWE-347). This is a common AI-generated mistake: the assistant "just wants the payload" and turns verification off to make the call succeed.
Verify the signature and pin the algorithm instead: JWT.decode(token, key, true, { algorithm: 'HS256' }) For asymmetric tokens pass the public key and an algorithms: allow-list.
Suppressing this rule
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.
// oauthlint-disable-next-line auth.ruby.jwt.decode-verify-disabled -- <reason>