/security-scan
/security-scan
Section titled “/security-scan”Purpose
Section titled “Purpose”Scan code and dependencies for security vulnerabilities. Performs comprehensive security analysis including dependency audits, code pattern scanning, and secret detection.
/security-scan [scope]Arguments
Section titled “Arguments”- scope (optional): What to scan
deps- Dependency vulnerabilities onlycode- Code patterns and vulnerabilitiessecrets- Hardcoded secrets and credentialsall- Comprehensive scan (default)
Workflow
Section titled “Workflow”Step 1: Dependency Scan
Section titled “Step 1: Dependency Scan”Check for known vulnerabilities in dependencies:
# Node.js projectsnpm audit
# Python projectspip-auditIdentifies:
- Outdated packages with security issues
- Known CVEs in dependencies
- Severity levels (Critical, High, Medium, Low)
- Available fixes and upgrades
Step 2: Code Scan
Section titled “Step 2: Code Scan”Analyze code for security vulnerabilities:
Patterns checked:
- SQL injection vulnerabilities
- XSS (Cross-Site Scripting) risks
- Command injection
- Path traversal
- Insecure deserialization
- Unsafe eval() usage
- Weak cryptography
Step 3: Secret Detection
Section titled “Step 3: Secret Detection”Scan for exposed secrets:
Detected items:
- API keys
- Passwords
- Tokens and credentials
- Private keys
- Database connection strings
- AWS/cloud credentials
Output
Section titled “Output”## Security Scan Results
### Summary
| Category | Critical | High | Medium | Low | Total ||----------|----------|------|--------|-----|-------|| Dependencies | 0 | 2 | 5 | 8 | 15 || Code Vulnerabilities | 0 | 1 | 3 | 2 | 6 || Exposed Secrets | 0 | 0 | 0 | 0 | 0 || **Total** | **0** | **3** | **8** | **10** | **21** |
### Critical Issues
None found ✅
### High Severity Issues (3)
#### 1. SQL Injection Risk**File:** `src/api/users.ts:45`**Severity:** High**Issue:** Unsanitized user input in SQL query
```typescript// Vulnerable codeconst query = `SELECT * FROM users WHERE id = ${userId}`;Recommendation:
// Use parameterized queriesconst query = 'SELECT * FROM users WHERE id = ?';const result = await db.query(query, [userId]);2. Outdated Dependency: express
Section titled “2. Outdated Dependency: express”Package: express@4.17.1
Severity: High
CVE: CVE-2022-24999
Issue: Denial of Service vulnerability
Recommendation:
npm install express@4.18.23. Command Injection Risk
Section titled “3. Command Injection Risk”File: src/utils/file-processor.ts:78
Severity: High
Issue: Unsanitized input to shell command
// Vulnerable codeexec(`convert ${filename} output.pdf`);Recommendation:
// Use safe alternativesimport { execFile } from 'child_process';execFile('convert', [filename, 'output.pdf']);Medium Severity Issues (8)
Section titled “Medium Severity Issues (8)”XSS Risk in Template
Section titled “XSS Risk in Template”File: src/views/profile.tsx:23
Severity: Medium
// Vulnerable<div dangerouslySetInnerHTML={{__html: userBio}} />
// Safe<div>{sanitize(userBio)}</div>Weak Password Hashing
Section titled “Weak Password Hashing”File: src/auth/password.ts:12
Severity: Medium
// Weakcrypto.createHash('md5').update(password).digest('hex');
// Strongimport bcrypt from 'bcrypt';await bcrypt.hash(password, 10);[… additional findings …]
Dependencies Requiring Updates
Section titled “Dependencies Requiring Updates”| Package | Current | Latest | Severity |
|---|---|---|---|
| express | 4.17.1 | 4.18.2 | High |
| lodash | 4.17.19 | 4.17.21 | Medium |
| axios | 0.21.1 | 1.6.0 | Medium |
Remediation Steps
Section titled “Remediation Steps”Immediate Actions (Critical/High)
Section titled “Immediate Actions (Critical/High)”- ✅ No critical issues
- 🔧 Fix SQL injection in
src/api/users.ts - 🔧 Fix command injection in
src/utils/file-processor.ts - 📦 Update express to 4.18.2
Short-term Actions (Medium)
Section titled “Short-term Actions (Medium)”- Implement input sanitization for XSS prevention
- Upgrade password hashing to bcrypt
- Update medium-severity dependencies
Long-term Improvements
Section titled “Long-term Improvements”- Implement automated security scanning in CI/CD
- Add security headers middleware
- Set up dependency update automation
- Conduct security code review training
Best Practices Violations
Section titled “Best Practices Violations”- ❌ Secrets in environment variables (not .env)
- ❌ Missing rate limiting on public endpoints
- ❌ No input validation middleware
- ❌ Missing security headers
Security Score: 72/100
Section titled “Security Score: 72/100”Category Scores:
- Dependencies: 65/100
- Code Security: 78/100
- Secret Management: 100/100
- Best Practices: 60/100
## Scan Scopes
### Dependencies Only```bash/security-scan depsFast scan of package vulnerabilities
Code Only
Section titled “Code Only”/security-scan codeDeep code analysis for vulnerability patterns
Secrets Only
Section titled “Secrets Only”/security-scan secretsCheck for exposed credentials
Comprehensive
Section titled “Comprehensive”/security-scan allFull security audit (recommended)
Examples
Section titled “Examples”# Full security scan/security-scan
# Only check dependencies/security-scan deps
# Code vulnerabilities only/security-scan code
# Find exposed secrets/security-scan secrets
# Security-focused review/review --persona=security src/auth/| Flag | Description |
|---|---|
--fix | Auto-fix issues where possible |
--report=[path] | Save detailed report to file |
--exclude=[pattern] | Exclude files/patterns |
--strict | Fail on any medium+ severity |
Common Vulnerabilities
Section titled “Common Vulnerabilities”SQL Injection
Section titled “SQL Injection”// Badconst query = `SELECT * FROM users WHERE email = '${email}'`;
// Goodconst query = 'SELECT * FROM users WHERE email = ?';db.query(query, [email]);XSS (Cross-Site Scripting)
Section titled “XSS (Cross-Site Scripting)”// Bad<div dangerouslySetInnerHTML={{__html: userContent}} />
// Goodimport DOMPurify from 'dompurify';<div>{DOMPurify.sanitize(userContent)}</div>Command Injection
Section titled “Command Injection”// Badexec(`ping ${userInput}`);
// GoodexecFile('ping', [userInput]);Hardcoded Secrets
Section titled “Hardcoded Secrets”// Badconst apiKey = 'sk_live_abc123xyz';
// Goodconst apiKey = process.env.API_KEY;Best Practices
Section titled “Best Practices”- Regular Scans: Run security scans regularly, not just before releases
- CI/CD Integration: Automate security scanning in your pipeline
- Dependency Updates: Keep dependencies up to date
- Code Review: Include security in code review process
- Principle of Least Privilege: Minimize permissions and access
- Input Validation: Always validate and sanitize user input
- Secrets Management: Use environment variables and secret management tools
Related Commands
Section titled “Related Commands”- /review —persona=security - Security-focused code review
- /fix - Fix identified vulnerabilities
- /optimize - Performance optimization