| name | security-audit |
| description | Identify security vulnerabilities and recommend fixes based on OWASP guidelines |
| license | Apache-2.0 |
| compatibility | claude-3 |
| metadata | {"author":"skills-mcp","version":"1.0","category":"security"} |
| allowed-tools | Read Grep Glob |
Security Audit Skill
Systematically identify security vulnerabilities in code using OWASP Top 10 and security best practices.
OWASP Top 10 (2021) Checklist
A01: Broken Access Control
Look for:
@app.route('/admin/users')
def list_users():
return User.query.all()
@app.route('/admin/users')
@requires_role('admin')
def list_users():
return User.query.all()
A02: Cryptographic Failures
Look for:
MD5, SHA1 for passwords (weak)
- Hardcoded API keys, passwords
- HTTP instead of HTTPS
- Weak random number generation
A03: Injection
Look for:
query = f"SELECT * FROM users WHERE id = {user_id}"
query = "SELECT * FROM users WHERE id = %s"
cursor.execute(query, (user_id,))
A04: Insecure Design
A05: Security Misconfiguration
Check for:
DEBUG = True
SECRET_KEY = "default-secret-key"
DEBUG = os.getenv("DEBUG", "false").lower() == "true"
SECRET_KEY = os.getenv("SECRET_KEY")
A06: Vulnerable Components
A07: Authentication Failures
A08: Data Integrity Failures
A09: Logging & Monitoring
Look for:
logger.info(f"User login: {username}, password: {password}")
logger.info(f"User login attempt: {username}")
A10: SSRF (Server-Side Request Forgery)
Language-Specific Patterns
Python
eval(user_input)
pickle.loads(data)
subprocess.shell=True
ast.literal_eval(user_input)
json.loads(data)
subprocess.run([cmd, arg], shell=False)
JavaScript
innerHTML = userInput
eval(userInput)
new Function(userInput)
textContent = userInput
SQL
Security Headers
Ensure these headers are set:
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Content-Security-Policy: default-src 'self'
X-XSS-Protection: 1; mode=block
Audit Report Format
## Security Finding
**Severity**: Critical/High/Medium/Low/Info
**Category**: OWASP A0X - Name
**Location**: file.py:line
### Description
[What the vulnerability is]
### Impact
[What an attacker could do]
### Recommendation
[How to fix it]
### Code Example
[Before/After code snippets]