Skip to content

/security-scan

Scan code and dependencies for security vulnerabilities. Performs comprehensive security analysis including dependency audits, code pattern scanning, and secret detection.

Terminal window
/security-scan [scope]
  • scope (optional): What to scan
    • deps - Dependency vulnerabilities only
    • code - Code patterns and vulnerabilities
    • secrets - Hardcoded secrets and credentials
    • all - Comprehensive scan (default)

Check for known vulnerabilities in dependencies:

Terminal window
# Node.js projects
npm audit
# Python projects
pip-audit

Identifies:

  • Outdated packages with security issues
  • Known CVEs in dependencies
  • Severity levels (Critical, High, Medium, Low)
  • Available fixes and upgrades

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

Scan for exposed secrets:

Detected items:

  • API keys
  • Passwords
  • Tokens and credentials
  • Private keys
  • Database connection strings
  • AWS/cloud credentials
## 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 code
const query = `SELECT * FROM users WHERE id = ${userId}`;

Recommendation:

// Use parameterized queries
const query = 'SELECT * FROM users WHERE id = ?';
const result = await db.query(query, [userId]);

Package: express@4.17.1 Severity: High CVE: CVE-2022-24999 Issue: Denial of Service vulnerability

Recommendation:

Terminal window
npm install express@4.18.2

File: src/utils/file-processor.ts:78 Severity: High Issue: Unsanitized input to shell command

// Vulnerable code
exec(`convert ${filename} output.pdf`);

Recommendation:

// Use safe alternatives
import { execFile } from 'child_process';
execFile('convert', [filename, 'output.pdf']);

File: src/views/profile.tsx:23 Severity: Medium

// Vulnerable
<div dangerouslySetInnerHTML={{__html: userBio}} />
// Safe
<div>{sanitize(userBio)}</div>

File: src/auth/password.ts:12 Severity: Medium

// Weak
crypto.createHash('md5').update(password).digest('hex');
// Strong
import bcrypt from 'bcrypt';
await bcrypt.hash(password, 10);

[… additional findings …]

PackageCurrentLatestSeverity
express4.17.14.18.2High
lodash4.17.194.17.21Medium
axios0.21.11.6.0Medium
  1. ✅ No critical issues
  2. 🔧 Fix SQL injection in src/api/users.ts
  3. 🔧 Fix command injection in src/utils/file-processor.ts
  4. 📦 Update express to 4.18.2
  1. Implement input sanitization for XSS prevention
  2. Upgrade password hashing to bcrypt
  3. Update medium-severity dependencies
  1. Implement automated security scanning in CI/CD
  2. Add security headers middleware
  3. Set up dependency update automation
  4. Conduct security code review training
  • ❌ Secrets in environment variables (not .env)
  • ❌ Missing rate limiting on public endpoints
  • ❌ No input validation middleware
  • ❌ Missing security headers

Category Scores:

  • Dependencies: 65/100
  • Code Security: 78/100
  • Secret Management: 100/100
  • Best Practices: 60/100
## Scan Scopes
### Dependencies Only
```bash
/security-scan deps

Fast scan of package vulnerabilities

Terminal window
/security-scan code

Deep code analysis for vulnerability patterns

Terminal window
/security-scan secrets

Check for exposed credentials

Terminal window
/security-scan all

Full security audit (recommended)

Terminal window
# 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/
FlagDescription
--fixAuto-fix issues where possible
--report=[path]Save detailed report to file
--exclude=[pattern]Exclude files/patterns
--strictFail on any medium+ severity
// Bad
const query = `SELECT * FROM users WHERE email = '${email}'`;
// Good
const query = 'SELECT * FROM users WHERE email = ?';
db.query(query, [email]);
// Bad
<div dangerouslySetInnerHTML={{__html: userContent}} />
// Good
import DOMPurify from 'dompurify';
<div>{DOMPurify.sanitize(userContent)}</div>
// Bad
exec(`ping ${userInput}`);
// Good
execFile('ping', [userInput]);
// Bad
const apiKey = 'sk_live_abc123xyz';
// Good
const apiKey = process.env.API_KEY;
  1. Regular Scans: Run security scans regularly, not just before releases
  2. CI/CD Integration: Automate security scanning in your pipeline
  3. Dependency Updates: Keep dependencies up to date
  4. Code Review: Include security in code review process
  5. Principle of Least Privilege: Minimize permissions and access
  6. Input Validation: Always validate and sanitize user input
  7. Secrets Management: Use environment variables and secret management tools