From appsec
This skill should be used when the user asks to "check API security", "audit REST API", "find BOLA vulnerabilities", "check for mass assignment", "analyze API rate limiting", "detect excessive data exposure", or mentions "API security", "BOLA", "IDOR", "mass assignment", "rate limiting", "broken function-level authorization", "excessive data exposure", or "OWASP API Top 10" in a security context.
npx claudepluginhub florianbuetow/claude-code --plugin appsecThis skill uses the workspace's default tool permissions.
Analyze REST and RPC APIs for security vulnerabilities aligned with the OWASP
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 REST and RPC APIs for security vulnerabilities aligned with the OWASP API Security Top 10, including Broken Object-Level Authorization (BOLA), mass assignment, missing rate limiting, broken function-level authorization, and excessive data exposure. API-specific vulnerabilities arise from the unique patterns of programmatic access, where client-side UI constraints do not apply.
Read ../../shared/schemas/flags.md for the full flag specification. This skill
supports all cross-cutting flags. Key flags for this skill:
--scope determines which files to analyze (default: changed)--depth standard reads code and checks API endpoint handlers--depth deep traces data from request to database to response serialization--severity filters output (API issues are often high or critical)Key CWEs in scope:
OWASP API Security Top 10 (2023) categories:
Read references/detection-patterns.md for the full catalog of code patterns,
search heuristics, language-specific examples, and false positive guidance.
Parse flags and resolve the file list per ../../shared/schemas/flags.md.
Filter to files likely to contain API logic:
**/routes/**, **/api/**, **/endpoints/**)**/controllers/**, **/handlers/**, **/views/**)**/serializers/**, **/dto/**, **/schemas/**)**/middleware/**, **/middlewares/**)**/config/**, **/limiters/**)Detect scanners per ../../shared/schemas/scanners.md:
semgrep -- primary scanner for API patternsbandit -- Python API security issuesbrakeman -- Rails API vulnerabilitiesRecord which scanners are available and which are missing.
If semgrep is available, run with rules targeting API security:
semgrep scan --config auto --json --quiet <target>
Filter results to rules matching BOLA, mass assignment, authorization, and data exposure patterns. Normalize output to the findings schema.
Regardless of scanner availability, perform manual code analysis:
When --depth deep, additionally trace:
Format output per ../../shared/schemas/findings.md using the API prefix
(e.g., API-001, API-002).
Include for each finding:
These are the high-signal patterns specific to API security. Each maps
to a detection pattern in references/detection-patterns.md.
Broken Object-Level Authorization (BOLA) -- API endpoints accept a resource ID from the client and return data without verifying the requesting user owns or is authorized to access that resource.
Mass assignment -- Request body fields are bound directly to database model attributes, allowing attackers to set fields they should not control (role, price, isAdmin).
Missing rate limiting -- API endpoints lack rate limiting, allowing brute-force attacks on authentication, enumeration, and resource exhaustion.
Broken function-level authorization -- Admin or privileged API endpoints are accessible to regular users because they check authentication but not authorization role/permissions.
Excessive data exposure -- API responses include sensitive fields (password hashes, tokens, internal metadata) that the client does not need.
Missing input validation -- API endpoints accept unbounded inputs (no max length, no type validation) enabling injection and resource abuse.
| Scanner | Coverage | Command |
|---|---|---|
| semgrep | BOLA, mass assignment, missing auth | semgrep scan --config auto --json --quiet <target> |
| bandit | Python API security patterns | bandit -r <target> -f json -q |
| brakeman | Rails mass assignment, authorization | brakeman -q -f json -o /dev/stdout |
Fallback (no scanner): Use Grep with patterns from references/detection-patterns.md
to find API route definitions, model binding, rate limiting config, and response
serialization. Report findings with confidence: medium.
Use the findings schema from ../../shared/schemas/findings.md.
API (e.g., API-001)apiapiAPIAPI1:2023, API3:2023, etc.CWE-639, CWE-915, CWE-770I (Information Disclosure) or E (Elevation of Privilege)Severity guidance for this category: