performing-jwt-none-algorithm-attack

performing-jwt-none-algorithm-attack is a skill for Claude Code, Codex from xalgorix/xalgorix. It costs 34 tokens per session (3,175 once invoked), scanned A, original, Apache-2.0.

A security-testing procedure for checking whether a server accepts a JSON Web Token with its signature algorithm set to none. A JWT is a signed token commonly used to carry login and permission data.

In plain words
What is it for?
Validating token-verification controls during an authorized security assessment or incident-response investigation.
Why use it?
If this weakness exists, an attacker may forge token contents without a valid signature and impersonate users or gain privileges.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/xalgorix/xalgorix/performing-jwt-none-algorithm-attack
Any agent
npx skills add xalgorix/xalgorix --skill performing-jwt-none-algorithm-attack
Clone the repo
git clone --depth 1 https://github.com/xalgorix/xalgorix

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for performing-jwt-none-algorithm-attack

README.md
[![agentmods](https://agentmods.dev/badge/skills/xalgorix/xalgorix/performing-jwt-none-algorithm-attack.svg)](https://agentmods.dev/skills/xalgorix/xalgorix/performing-jwt-none-algorithm-attack)
Your own site
<a href="https://agentmods.dev/skills/xalgorix/xalgorix/performing-jwt-none-algorithm-attack"><img src="https://agentmods.dev/badge/skills/xalgorix/xalgorix/performing-jwt-none-algorithm-attack.svg" alt="Measured on agentmods" height="20"></a>
Per session 34 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,175 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00034 $0.03175
Opus 5 $0.00017 $0.01588
Sonnet 5 $0.00007 $0.00635
Haiku 4.5 $0.00003 $0.00317

Measured 4d ago against content hash 85d6dc29a384, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

performing-jwt-none-algorithm-attack scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

response = requests.get(
internal/tools/skills/data/api-security/performing-jwt-none-algorithm-attack/SKILL.md · 350 lines

How it starts

The opening of the file, as written. The whole thing — 350 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Performing JWT None Algorithm Attack

Overview

The JWT none algorithm attack exploits a vulnerability in JSON Web Token libraries that accept tokens with the alg header set to none, effectively bypassing signature verification. When a server processes a JWT with "alg": "none", it treats the token as valid without checking any cryptographic signature, allowing attackers to forge tokens with arbitrary claims such as escalated privileges, impersonated users, or extended expiration times. This vulnerability was first disclosed by Tim McLean in 2015 and has affected multiple JWT libraries across languages.

When to Use

  • When conducting security assessments that involve performing jwt none algorithm attack
  • When following incident response procedures for related security events
  • When performing scheduled security testing or auditing activities
  • When validating security controls through hands-on testing

Most Often Missed & How to Confirm

  • alg casing/omission: test none, None, NONE, nOnE, and a header with no alg at all - allowlists that only block lowercase "none" still fall.
  • Signature-segment variants: try an empty sig, a trailing-dot-only sig, and a leftover original signature - some libraries accept each differently.
  • Claim edits matter: flip role/is_admin/sub while keeping iss/aud/exp valid so the token passes non-signature checks.
  • Chain to confusion/weak secret: if none is blocked, try RS256→HS256 confusion and HMAC secret brute-force before concluding safe.
  • kid/jwk header injection: CVE-2018-0114-style embedded jwk and kid path traversal can supply attacker keys.

How to confirm a hit (avoid false negatives): the forged token must return authenticated/privileged data from a protected endpoint (e.g., an admin route returns 200 with admin data), not merely avoid a 401 - compare against an unauthenticated baseline. Don't conclude negative until you've tried: all none casings, every signature-segment form, claim manipulation, and the HS256-confusion and weak-secret fallbacks.

Read the full file on GitHub · 350 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 350 lines · 34 tokens per session scan A 85d6dc29a384

Subscribe to this mod's changes

performing-jwt-none-algorithm-attack is a skill published in the GitHub repository xalgorix/xalgorix (955 stars, last pushed today), licensed Apache-2.0. It adds 34 tokens to every session and 3,175 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.