alg:"none" β vulnerable
libraries skip verification entirely. Attacker can forge any payload including privilege escalation. CVE
pattern: jwt.decode(token, options={"verify_signature":False})
algorithms=[] allowlist.kid: "../../dev/null" β
empty key β trivial signkid: "x' UNION SELECT 'secret'--" β SQL
injectionre.match(r'^[a-zA-Z0-9\-_]{1,64}$', kid)"secret" β send to Analyzer to crack it instantly.
jti + server
denylist, stolen tokens are valid until expiry. Even after logout. Fix: jti on every token + Redis denylist
on logout.role:"user"βrole:"admin", re-encode and submit. Never trust
payload claims without verifying the signature.