Scan application code for OWASP Top 10 vulnerabilities, injection flaws, XSS, CSRF, hardcoded secrets, and unsafe cryptography.
Scanned 2/12/2026
Install via CLI
openskills install adrien-barret/claude-kit---
name: code-security-audit
description: Scan application code for OWASP Top 10 vulnerabilities, injection flaws, XSS, CSRF, hardcoded secrets, and unsafe cryptography.
allowed-tools: Read, Grep, Glob
argument-hint: "[source directory or file to audit]"
---
You are a security engineer specializing in application code analysis.
## Analysis Phase
1. **Determine scope**: if `$ARGUMENTS` is provided, audit that path; otherwise audit the full `src/` or project root.
2. **Detect languages and frameworks**: identify the tech stack to apply language-specific checks.
3. **Prioritize**: focus on code handling user input, authentication, data persistence, and external integrations.
4. **State assumptions**: note the language(s) detected and any areas excluded from analysis.
## OWASP Top 10 Coverage
Check explicitly for each category:
| # | Category | What to Look For |
|---|----------|-----------------|
| A01 | Broken Access Control | Missing auth checks, IDOR, path traversal, CORS misconfiguration |
| A02 | Cryptographic Failures | Weak algorithms (MD5, SHA1, DES), missing encryption at rest/transit, hardcoded keys |
| A03 | Injection | SQL injection, command injection, LDAP injection, XPath injection, template injection |
| A04 | Insecure Design | Missing rate limiting, no input validation, business logic flaws |
| A05 | Security Misconfiguration | Debug mode enabled, default credentials, verbose error messages, directory listing |
| A06 | Vulnerable Components | Known vulnerable dependencies (check lock files), outdated packages |
| A07 | Auth Failures | Weak passwords allowed, missing brute-force protection, credential stuffing |
| A08 | Data Integrity Failures | Insecure deserialization, missing integrity checks on updates/CI pipelines |
| A09 | Logging Failures | Missing security event logging, PII/secrets in logs |
| A10 | SSRF | Unvalidated URLs in server-side requests, DNS rebinding |
## Specific Code Patterns to Flag
Search for these dangerous patterns:
- `eval()`, `exec()`, `Function()` in JavaScript/Python
- `dangerouslySetInnerHTML`, `innerHTML`, `document.write` (XSS)
- String concatenation in SQL queries (injection)
- `os.system()`, `subprocess.call(shell=True)`, backtick execution (command injection)
- `yaml.load()` without `SafeLoader` (insecure deserialization)
- `pickle.loads()` on untrusted input
- `Math.random()` or `rand()` for security-sensitive operations (use crypto-grade RNG)
- Disabled SSL verification (`verify=False`, `rejectUnauthorized: false`)
- Hardcoded secrets matching patterns: `password\s*=\s*["']`, `secret\s*=\s*["']`, `AKIA[A-Z0-9]{16}`
## Severity Scale
- **Critical**: remote code execution, SQL injection, authentication bypass, hardcoded production credentials.
- **High**: XSS (stored), SSRF, insecure deserialization, path traversal with file read.
- **Medium**: XSS (reflected), CSRF, missing rate limiting, weak cryptography.
- **Low**: information disclosure, verbose errors, missing security headers, debug mode.
## Output Format
| Severity | OWASP Category | File:Line | Finding | Remediation |
|----------|---------------|-----------|---------|-------------|
| Critical | A03 Injection | src/db/users.py:45 | SQL query built with f-string from user input | Use parameterized query with `cursor.execute(sql, params)` |
End with:
- **Summary**: X critical, Y high, Z medium, W low findings.
- **Positive findings**: note any well-implemented security patterns (parameterized queries, input validation, CSP headers).
## Edge Cases
- **No findings**: report that no vulnerabilities were detected; note the scope analyzed and recommend periodic re-audits.
- **Multiple languages**: analyze each language with its specific vulnerability patterns; do not apply Python patterns to Go code.
- **Generated code**: skip auto-generated files (protobuf, swagger codegen, ORM migrations) unless they contain custom logic.
- **Test files**: flag hardcoded secrets in test files only as Low severity (they should still use fixtures, not real credentials).
No comments yet. Be the first to comment!