auth

Identification and Authentication Failures

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "auth" with this command: npx skills add florianbuetow/claude-code/florianbuetow-claude-code-auth

Identification and Authentication Failures

Analyze source code for authentication and session management vulnerabilities. Detect weak credential handling, missing brute force protections, insecure session management, and absent multi-factor authentication. Produce actionable findings with severity ratings, code locations, and concrete remediation steps.

Supported Flags

All flags from ../../shared/schemas/flags.md are supported:

Flag Relevant Behavior

--scope <value>

Determines which files to analyze (default: changed )

--depth <value>

quick : pattern scan only. standard : full read + analysis. deep : trace auth flows cross-file. expert : red team simulation with DREAD scoring

--severity <value>

Filter findings by minimum severity

--format <value>

Output format: text , json , sarif , md

--fix

Chain into remediation after analysis

--quiet

Findings only, no explanations

--explain

Add learning context to each finding

Framework Context

OWASP Top 10 2021 - A07: Identification and Authentication Failures

Confirmation of the user's identity, authentication, and session management is critical to protect against authentication-related attacks. Applications are vulnerable when they:

  • Permit automated attacks such as credential stuffing or brute force

  • Permit default, weak, or well-known passwords

  • Use weak credential recovery processes (e.g., knowledge-based answers)

  • Store passwords in plain text, encrypted, or with weak hashes (MD5, SHA1)

  • Lack or have ineffective multi-factor authentication

  • Expose session identifiers in URLs

  • Reuse session identifiers after successful login

  • Fail to properly invalidate sessions on logout or timeout

STRIDE Mapping: Spoofing, Repudiation

CWE References: CWE-287 (Improper Authentication), CWE-384 (Session Fixation), CWE-307 (Brute Force), CWE-521 (Weak Password Requirements), CWE-916 (Weak Password Hash), CWE-613 (Insufficient Session Expiration), CWE-308 (Missing MFA)

Detection Patterns

Read references/detection-patterns.md before performing analysis. It contains detailed Grep heuristics, language-specific code examples, scanner coverage, and false positive guidance for each vulnerability pattern.

Workflow

  1. Determine Scope

Parse --scope flag and resolve to a concrete file list:

  • Apply scope resolution per ../../shared/schemas/flags.md .

  • Filter to files relevant to authentication:

  • Route handlers, middleware, and controllers (login, register, password reset endpoints)

  • Authentication modules and services

  • Session configuration files

  • Password hashing and validation utilities

  • JWT/token generation and validation code

  • OAuth/OIDC integration code

  • Configuration files (session timeout, password policy settings)

  • Include framework-specific auth files (e.g., passport.js configs, Django auth backends, Spring Security configs, Go auth middleware).

  1. Check for Scanners

Detect available scanners in order of preference:

Scanner Detect Relevant Rules

semgrep which semgrep

Auth bypass, weak hashing, JWT issues, session management

bandit which bandit

Hardcoded passwords, weak hashes (Python)

gosec which gosec

Hardcoded credentials, weak crypto (Go)

gitleaks which gitleaks

Hardcoded secrets, API keys, passwords in code

If no scanner is available, proceed with Claude analysis using Grep patterns from references/detection-patterns.md . Note in output: "No scanner available -- findings based on code pattern analysis only."

  1. Run Scanners

For each available scanner:

  • Execute against the scoped file list.

  • Parse JSON output.

  • Filter to authentication-related rules only.

  • Normalize findings to the schema in ../../shared/schemas/findings.md .

  • Set scanner.confirmed: true for scanner-detected findings.

  1. Claude Analysis

Regardless of scanner availability, perform manual code analysis:

  • Read references/detection-patterns.md for the full pattern catalog.

  • Use Grep with the regex patterns to locate suspicious constructs.

  • Read surrounding code context (30-50 lines) to assess each match.

  • Trace authentication flows from entry point to credential validation.

  • At --depth deep or higher: follow imports, trace session lifecycle, map the complete auth flow across files.

  • Deduplicate against scanner findings (same file + line = same finding).

  • Set confidence: medium for Claude-only findings, confidence: high when confirmed by a scanner.

  1. Report Findings

Format output per --format flag. Each finding uses the schema from ../../shared/schemas/findings.md with these specifics:

  • ID prefix: AUTH (e.g., AUTH-001 , AUTH-002 )

  • references.owasp: A07:2021

  • references.stride: S (Spoofing) or R (Repudiation)

  • metadata.tool: auth

  • metadata.framework: owasp

  • metadata.category: A07

Summary block (appended after all findings):

Summary

SeverityCount
CRITICALN
HIGHN
MEDIUMN
LOWN

Scanners used: [list or "none"] Scanners missing: [list of recommended but unavailable] Top priorities: [top 3 findings to fix first and why]

What to Look For

These are the primary vulnerability patterns. See references/detection-patterns.md

for detailed regex patterns and code examples.

  • Missing rate limiting on login -- No throttling, delay, or account lockout on authentication endpoints, enabling brute force and credential stuffing.

  • Weak password validation -- No complexity requirements, missing minimum length checks, or no check against common password lists.

  • Plaintext or weakly hashed passwords -- Passwords stored with MD5, SHA1, plain SHA256, or without salting. Must use Argon2, bcrypt, or scrypt.

  • Session ID in URL parameters -- Session tokens passed via query strings, visible in logs, referrer headers, and browser history.

  • Missing session regeneration after login -- Same session ID used before and after authentication, enabling session fixation attacks.

  • JWT with none algorithm accepted -- JWT verification allows alg: "none" , letting attackers forge unsigned tokens.

  • Hardcoded JWT secrets -- Signing keys embedded in source code rather than loaded from environment or secrets management.

  • Missing or ineffective MFA -- No multi-factor authentication on sensitive operations, or MFA that can be bypassed.

  • Insufficient session invalidation -- Sessions not destroyed on logout, or no server-side session expiration/timeout.

Scanner Integration

Refer to ../../shared/schemas/scanners.md for full scanner details.

Primary: semgrep (broad auth rule coverage across languages) Secondary: bandit (Python), gosec (Go), gitleaks (hardcoded credentials) Fallback: Grep-based pattern matching from references/detection-patterns.md

When running as a subagent of the OWASP dispatcher, receive scope and flags from the parent agent prompt. Do not re-parse user input.

Output Format

All findings conform to the schema defined in ../../shared/schemas/findings.md .

ID prefix: AUTH (registered in the ID Prefix Registry as OWASP A07)

Example finding:

{ "id": "AUTH-001", "title": "Passwords hashed with MD5 in user registration", "severity": "critical", "confidence": "high", "location": { "file": "src/auth/register.py", "line": 34, "function": "create_user", "snippet": "password_hash = hashlib.md5(password.encode()).hexdigest()" }, "description": "User passwords are hashed with MD5, which is cryptographically broken and trivially reversible with rainbow tables or GPU cracking.", "impact": "An attacker with database access can recover all user passwords within minutes, enabling account takeover across the application and any services where users reuse passwords.", "fix": { "summary": "Replace MD5 with bcrypt or Argon2id", "diff": "- password_hash = hashlib.md5(password.encode()).hexdigest()\n+ password_hash = bcrypt.hashpw(password.encode(), bcrypt.gensalt())" }, "references": { "cwe": "CWE-916", "owasp": "A07:2021", "stride": "S" }, "metadata": { "tool": "auth", "framework": "owasp", "category": "A07" } }

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

spec-writer

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

file-upload

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

spoofing

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

dos

No summary provided by upstream source.

Repository SourceNeeds Review