Security Check
Red-team style security review for code changes. Think like an attacker.
Modes
1. Pending Changes (default)
Review uncommitted changes in the current working directory:
git diff HEAD
git diff --cached # staged changes
2. Branch vs Main
Review all commits on a branch against main:
git log main..<branch> --oneline # list commits
git diff main...<branch> # three dots = merge-base diff
3. Specific Commit Range
git diff <commit1>..<commit2>
Review Checklist
Input Validation
- [ ] User input sanitized before use?
- [ ] SQL injection vectors?
- [ ] Command injection (shell escapes)?
- [ ] Path traversal (
../in file paths)? - [ ] XSS in HTML/JS output?
- [ ] Prototype pollution (JS objects)?
Authentication & Authorization
- [ ] Auth checks on all sensitive endpoints?
- [ ] Permission escalation paths?
- [ ] Session handling flaws?
- [ ] Token exposure in logs/URLs?
- [ ] Missing rate limiting?
Secrets & Configuration
- [ ] Hardcoded credentials/API keys?
- [ ] Secrets in logs or error messages?
- [ ] Insecure defaults?
- [ ] Debug mode left enabled?
- [ ]
.envfiles committed?
Data Exposure
- [ ] Sensitive data in responses?
- [ ] PII leaked in logs?
- [ ] Stack traces exposed to users?
- [ ] Internal paths/IPs revealed?
Cryptography
- [ ] Weak algorithms (MD5, SHA1 for security)?
- [ ] Hardcoded IVs/salts?
- [ ] Predictable random values?
- [ ] Missing HTTPS enforcement?
Dependencies
- [ ] Known vulnerable packages?
- [ ] Unpinned versions?
- [ ] Typosquatting risk?
File Operations
- [ ] Arbitrary file read/write?
- [ ] Unsafe deserialization?
- [ ] Temp file races?
- [ ] Symlink attacks?
Process & Network
- [ ] SSRF vectors?
- [ ] Open redirects?
- [ ] Unsafe subprocess calls?
- [ ] Missing timeouts?
Output Format
For each finding:
🔴 [CRITICAL|HIGH|MEDIUM|LOW] <Title>
📍 Location: <file:line>
💀 Attack Vector:
<How an attacker would exploit this>
📝 Code:
<relevant snippet>
✅ Fix:
<suggested remediation>
Workflow
- Identify scope — Ask which mode (pending/branch/commit range)
- Get the diff — Run appropriate git commands
- Analyze systematically — Go through checklist
- Prioritize findings — CRITICAL > HIGH > MEDIUM > LOW
- Suggest fixes — Concrete code changes, not vague advice
- Summary — Executive summary with risk assessment
Quick Commands
# Pending changes
git diff HEAD
# Branch review
git diff main...feature-branch
# Check for secrets (basic)
git diff HEAD | grep -iE "(password|secret|api.?key|token|credential)"
# Check for dangerous functions
git diff HEAD | grep -iE "(eval|exec|system|shell_exec|passthru|popen)"
Risk Levels
- CRITICAL: Exploitable now, high impact (RCE, auth bypass, data breach)
- HIGH: Likely exploitable, significant impact
- MEDIUM: Exploitable under specific conditions
- LOW: Defense-in-depth issues, minor exposure
微信扫一扫