| name | add-security-audit |
| description | Security audit: OWASP Top 10, multi-tenancy, injection, auth, XSS, dependencies.
|
Security Audit
Use for: Validate security, audit codebase, identify vulnerabilities
Do not use for: Writing security fixes, dependency upgrades, incident response, general code review
Reference: Always consult CLAUDE.md for general project standards.
OWASP Checklist
A01 โ Broken Access Control (CRITICAL)
Multi-tenant rules:
Searches to run:
grep 'findAll|selectFrom' โ check account_id filter
grep '@Body()' โ check no accountId from body
A02 โ Cryptographic Failures
Searches:
grep 'sk_live|api_key|secret' โ no hardcoded
grep 'logger|console' โ no sensitive data
A03 โ Injection (CRITICAL)
SQL/NoSQL:
Command injection:
Searches:
grep 'raw(' โ check user input
grep '${' in queries โ SQL injection
A04 โ Insecure Design
Search: grep '@Get|@Post' โ check @UseGuards.
A05 โ Misconfiguration
Secrets/env vars: see A02.
Searches:
grep 'origin.*\*' โ open CORS
grep 'process.env' โ use IConfigurationService
A06 โ Vulnerable Components
Command: npm audit --json | grep -E 'critical|high'.
A07 โ Auth Failures
A08 โ Integrity Failures
A09 โ Logging Failures
Sensitive data in logs: see A02.
A10 โ SSRF
Extra โ XSS
Search: grep 'dangerouslySetInnerHTML' โ check sanitization.
Extra โ Mass Assignment
Search: grep '...body|...dto' โ spread vulnerability.
Scoring
Formula: score = 10 - (weighted_sum / 5)
| Severity | Weight | Score Range | Status |
|---|
| critical | 3 | 8-10 | โ
Secure |
| high | 2 | 6-7 | โ ๏ธ Attention |
| medium | 1 | 4-5 | ๐ Risk |
| low | 0.5 | 0-3 | ๐ด Vulnerable |
Process
- Setup: Read
security.md, CLAUDE.md, identify scope files
- Analyze: For EACH OWASP category โ run searches โ verify (no false positives) โ classify severity
- Multi-Tenant: Check ALL queries filter
account_id, ID from JWT
- Report: Calculate score, group by severity, create
security-report.md
Output Template
# Security Audit Report
**Date:** [date] | **Scope:** [path]
## Score
| Category | Status | Findings |
|----------|--------|----------|
| Access Control | โ
/โ ๏ธ/โ | X |
| Crypto | โ
/โ ๏ธ/โ | X |
| Injection | โ
/โ ๏ธ/โ | X |
| Auth | โ
/โ ๏ธ/โ | X |
| Config | โ
/โ ๏ธ/โ | X |
| XSS | โ
/โ ๏ธ/โ | X |
| Deps | โ
/โ ๏ธ/โ | X |
| **OVERALL** | **โ ๏ธ** | **X** |
## Critical Findings
### Finding #1
**Category:** [OWASP] | **Severity:** ๐ด | **File:** `path:line`
**Vulnerable Code:** [code]
**Impact:** [simple language]
**Recommendation:** [fix]
## Positive Points
- [good practices found]
## Priority Actions
1. [most urgent]
2. [second]
3. [third]
Rules
- Analyze ALL files in scope, check ALL OWASP categories, include exact line, explain impact simply
- Verify context to avoid false positives; do not flag minor findings without justification
- Report only โ never auto-fix
- Avoid jargon without explanation
False Positive Prevention
Stack-specific protections (NestJS sanitization, Kysely parametrization, React escaping, etc.) and accepted patterns (e.g. process.env.NODE_ENV, internal .raw(), validated PartialType): consult CLAUDE.md for the project's stack and documented exceptions.
Project patterns:
- Check documented patterns
IConfigurationService is correct
- Don't report as violation if it follows the docs