JWT Signature Verification Bypass
Last updated
What it is: The server accepts a JWT and reads its claims without checking the signature. So the token is technically "signed," but nobody ever verifies that signature before trusting the data inside it.
Why it works:
JWTs aren't encrypted - the payload is just Base64, readable and editable by anyone. The signature is the only thing stopping tampering. If the server skips verification, the signature becomes decorative. You can edit any claim (sub, role, admin, etc.) and the server will happily believe it.
How to spot it:
Decode the JWT (jwt.io or Burp).
Find a claim that looks like it controls identity/privilege (sub, username, role, isAdmin).
Change it to something more privileged.
Re-encode, keep the old signature (or anything, really), send it.
If it still works → signature isn't being checked.
Last updated