From appsec
This skill should be used when the user asks to "check for authentication issues", "analyze auth", "find credential vulnerabilities", "review login security", "check session management", or mentions "authentication", "passwords", "MFA", "sessions", or "brute force" in a security context. Maps to OWASP Top 10 2021 A07: Identification and Authentication Failures.
npx claudepluginhub florianbuetow/claude-code --plugin appsecThis skill uses the workspace's default tool permissions.
Analyze source code for authentication and session management vulnerabilities. Detect
Acquire memory dumps from live systems/VMs and analyze with Volatility 3 for processes, networks, DLLs, injections in incident response or malware hunts.
Provides x86-64/ARM disassembly patterns, calling conventions, control flow recognition for static analysis of executables and compiled binaries.
Identifies anti-debugging checks like IsDebuggerPresent, NtQueryInformationProcess in Windows binaries; suggests bypasses via patches/hooks/scripts for malware analysis, CTFs, authorized RE.
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.
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 |
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:
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)
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.
Parse --scope flag and resolve to a concrete file list:
../../shared/schemas/flags.md.passport.js configs, Django auth backends,
Spring Security configs, Go auth middleware).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."
For each available scanner:
../../shared/schemas/findings.md.scanner.confirmed: true for scanner-detected findings.Regardless of scanner availability, perform manual code analysis:
references/detection-patterns.md for the full pattern catalog.--depth deep or higher: follow imports, trace session lifecycle, map the
complete auth flow across files.confidence: medium for Claude-only findings, confidence: high when
confirmed by a scanner.Format output per --format flag. Each finding uses the schema from
../../shared/schemas/findings.md with these specifics:
AUTH (e.g., AUTH-001, AUTH-002)A07:2021S (Spoofing) or R (Repudiation)authowaspA07Summary block (appended after all findings):
## Summary
| Severity | Count |
|----------|-------|
| CRITICAL | N |
| HIGH | N |
| MEDIUM | N |
| LOW | N |
**Scanners used**: [list or "none"]
**Scanners missing**: [list of recommended but unavailable]
**Top priorities**: [top 3 findings to fix first and why]
These are the primary vulnerability patterns. See references/detection-patterns.md
for detailed regex patterns and code examples.
alg: "none", letting
attackers forge unsigned tokens.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.
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"
}
}