Join our Newsletter — 33% off our NHI Course
Home› FAQ› Authentication, Authorisation & Trust› Why does allowing the none algorithm create token…
Authentication, Authorisation & Trust

Why does allowing the none algorithm create token abuse risk?

← Back to all FAQ
By NHI Mgmt Group Editorial Team Updated October 12, 2026 Domain: Authentication, Authorisation & Trust

Allowing none removes the cryptographic assurance that makes JWTs trustworthy in the first place. It lets code accept tokens without a valid signature, which means attacker-controlled claims can enter application logic as if they were authentic identity evidence. Teams should enforce explicit algorithm allowlists and reject any implementation that accepts unsigned tokens in production paths.

How unsigned JWT acceptance turns into token abuse

The danger is not just that a token is “weaker,” it is that the application has stopped treating the signature as the gate that separates a trusted assertion from attacker input. Once an implementation will accept alg: none, the payload can be altered to impersonate another user, claim elevated roles, or carry any identity attributes the attacker wants the application to trust.

That is why this issue is fundamentally about trust boundaries. A JWT is only meaningful when the verifier can prove the issuer signed it with the expected algorithm and key. If verification is bypassed, the token becomes a self-asserted data blob, and downstream authorization code may treat those claims as authenticated identity evidence.

In practice, this risk shows up when developers assume the library will “do the right thing” by default, or when code accepts multiple algorithms without pinning the expected one. JWT Best Current Practice explicitly warns against algorithm confusion and supports the safer pattern of explicit validation rules rather than permissive defaults.

Why claims become dangerous once signature checks disappear

JWT claims are designed to travel with the token, not to stand alone as proof. When a verifier ignores the signature or permits an unsigned token, fields such as subject, audience, scope, roles, tenant, or expiry can be rewritten before the token reaches business logic. The application may then grant access, choose an account context, or route requests based on attacker-controlled values.

This creates a particularly sharp failure mode because the abuse is often invisible at the application layer. The request still looks syntactically valid, and the only broken control may be the missing cryptographic verification step. That makes the issue attractive to attackers: it can turn a low-friction input point into authenticated access without password guessing, MFA bypass, or session theft.

The same pattern is why token handling guidance stresses strict algorithm allowlists and exact issuer expectations. RFC 8707 and related OAuth token-boundary practices reinforce a broader principle: tokens should be constrained to a known context, not accepted as generic bearer assertions.

What secure teams should enforce in production

Production systems should treat none as a rejection condition, not an alternate validation path. The safest design is to pin the algorithm to the one the issuer actually uses, verify the signature before reading claims, and fail closed if the token header does not match the expected signing method or key metadata.

That control is strongest when paired with a narrow acceptance policy: known issuer, known audience, known signing keys, and explicit expiration handling. If the application is part of a delegated or federated flow, token exchange or sender-constrained token patterns can reduce the impact of a stolen bearer token, but they do not compensate for unsigned-token acceptance.

For teams that want a standards-based reference point, RFC 9700 and NIST SP 800-63 Digital Identity Guidelines both support the broader discipline of validating authenticators and trust decisions before any identity claim is accepted.

Risk and Threat Considerations

Allowing unsigned tokens is a direct trust-bypass condition. It enables forged identity claims, privilege escalation, and silent impersonation because the application can no longer distinguish an issuer-backed assertion from attacker-supplied JSON.

Failure mechanism: The verifier accepts alg: none or otherwise skips signature validation, then consumes untrusted claims as if they were authenticated token content. An attacker can change subject, role, scope, or audience values and steer authorization decisions.

Impact: Depending on how claims are used, the result can be account takeover, unauthorized API access, lateral movement through trusted integrations, or persistent abuse of sessions and delegated privileges.

Standards & Framework Alignment

This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.

OWASP API Security Top 10 addresses the attack and risk surface, while OWASP ASVS, NIST SP 800-63 and NIST SP 800-53 Rev 5 set the governance and control requirements practitioners need to meet.

FrameworkControl / ReferenceRelevance
OWASP ASVSV10 — OAuth and OIDCJWT signature and algorithm validation are core OAuth/OIDC token handling concerns.
Recommendation — Enforce explicit token validation rules and reject unsigned or unexpected-algorithm JWTs.
NIST SP 800-63Digital Identity GuidelinesIdentity assertions only matter if authenticators and assertions are validated before trust decisions.
Recommendation — Validate authenticator and assertion trust before consuming identity claims.
NIST SP 800-53 Rev 5IA-5 — Authenticator ManagementJWT abuse often follows weak control of token/authenticator validation and lifecycle safeguards.
IA-2 — Identification and Authentication (Organizational Users)Unsigned JWT acceptance undermines authenticated user trust decisions in access paths.
Recommendation — Restrict token handling to validated authenticators and reject permissive parsing defaults. Require proven authentication before authorizing user actions.
OWASP API Security Top 10API2 — Broken AuthenticationAccepting none can let attacker-controlled tokens bypass API authentication checks.
Recommendation — Reject unsigned tokens and verify issuer, audience, and signature before API access.

Practitioner Guidance

What to verify: Confirm that the library or gateway rejects unsigned JWTs in every production path, and that the allowed algorithm list is fixed per issuer rather than negotiated from token input. Also verify that signature validation happens before any claim-driven authorization logic runs.

Common mistake: Teams often test only with a valid token and assume the parser is safe because normal traffic works. The real test is whether malformed headers, unexpected algorithms, and unsigned tokens are all rejected deterministically.

Decision rule: If the token can influence access, identity context, or privilege, treat signature verification as non-optional. If a component cannot enforce that rule reliably, move verification to a trusted gateway or replace the component rather than accepting a downgrade path.

Practitioner takeaway: The security boundary is not the JWT format itself, it is the cryptographic verification step that proves the claims came from a trusted issuer. If that boundary can be disabled, the token stops being evidence and becomes attacker-controlled input.

Free weekly newsletter

Subscribe to the NHI & AI Identity Journal

The latest on NHI and Agentic AI security – articles, research, breaches, news and events every week.

Bonus 33% off our NHI Course when you subscribe.

NHIMG Editorial Note
Reviewed and updated by the NHIMG editorial team on October 12, 2026.
NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org