About auth-audit
auth-audit is a skill for reviewing authentication and authorization implementations, from JWTs and sessions to OAuth2, passwords, and MFA. Its workflow checks cryptographic choices, token lifecycles, and authorization logic for common security flaws.
Key features
- 01JWT signing, expiry, refresh, and storage checks
- 02Session lifecycle and fixation checks
- 03OAuth2 PKCE and redirect validation
- 04Password hashing and reset-flow review
- 05MFA recovery and authorization logic checks
Use cases
- 01Reviewing a new authentication implementation
- 02Checking token and session handling
- 03Auditing OAuth2 and password security
- 04Finding authorization and MFA weaknesses
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ fusengine/ claude-plugins --skill auth-auditAfter installing, type/auth-auditin Claude Code to confirm it loaded.
Details
From the project READMEIt runs a fixed workflow — detect the auth implementation, scan for known anti-patterns,
verify cryptographic choices, check token/session lifecycle, and audit authorization logic
(RBAC/ABAC) — checking for vulnerabilities such as JWT signed with none, undersized JWT
secrets, missing/too-long token expiration, refresh tokens in localStorage, session fixation,
missing CSRF protection, and OAuth flows missing PKCE or the state parameter.
Auth Audit Skill
Overview
Comprehensive audit of authentication and authorization implementations.
Audit Categories
| Category | Checks |
|---|---|
| JWT | Signing algo, expiration, refresh, storage |
| Sessions | Storage, expiry, regeneration, fixation |
| OAuth2 | PKCE, state param, redirect validation |
| Passwords | Hashing algo, strength rules, reset flow |
| MFA | Implementation, backup codes, recovery |
Workflow
- Detect auth implementation (JWT, sessions, OAuth)
- Scan for known anti-patterns
- Verify cryptographic choices
- Check token/session lifecycle
- Audit authorization logic (RBAC, ABAC)
Common Vulnerabilities
- JWT signed with
nonealgorithm - JWT secret too short (< 256 bits)
- No token expiration or too long
- Refresh tokens stored in localStorage
- Session fixation after login
- Missing CSRF protection
- OAuth without PKCE for public clients
- Missing
stateparameter in OAuth flow