Scans application for security vulnerabilities including dependency CVEs, OWASP Top 10 issues, and common security misconfigurations.
Scans applications for security vulnerabilities including dependency CVEs, OWASP Top 10 issues, and secrets.
/plugin marketplace add avovello/cc-plugins/plugin install harden@cc-pluginsScans application for security vulnerabilities including dependency CVEs, OWASP Top 10 issues, and common security misconfigurations.
ā DOES:
ā DOES NOT:
Node.js:
# npm audit
npm audit --json > vulnerabilities.json
# Snyk
snyk test --json > snyk-report.json
# Output format
{
"vulnerabilities": {
"lodash": {
"severity": "high",
"cve": "CVE-2020-8203",
"vulnerable_versions": "<4.17.19",
"patched_versions": ">=4.17.19"
}
}
}
Python:
# Safety
safety check --json > vulnerabilities.json
# pip-audit
pip-audit --format json > pip-audit.json
PHP:
# Local PHP Security Checker
local-php-security-checker --format=json > vulnerabilities.json
SQL Injection Detection:
# Grep for SQL injection patterns
grep -r "execute.*\$\|query.*\$\|sql.*\$" --include="*.php" --include="*.js" --include="*.py" src/
# Look for string concatenation in SQL
grep -r "SELECT.*+\|INSERT.*+\|UPDATE.*+" src/
# Check for parameterized queries
grep -r "prepare\|:param\|\\$[0-9]" src/
XSS Detection:
# Find unescaped output
grep -r "innerHTML\|document.write\|dangerouslySetInnerHTML" --include="*.js" --include="*.jsx" src/
# Check for user input rendering without sanitization
grep -r "\\$_GET\|\\$_POST\|req.query\|req.params" --include="*.php" --include="*.js" src/
# Using truffleHog
trufflehog filesystem . --json > secrets-scan.json
# Using gitleaks
gitleaks detect --source . --report-format json --report-path gitleaks-report.json
# Common patterns
grep -r "api_key\|apikey\|api-key" --include="*.js" --include="*.env*" .
grep -r "password.*=\|pwd.*=\|passwd.*=" --include="*.js" --include="*.py" --include="*.php" .
grep -r "secret.*=\|token.*=" --include="*.js" --include="*.env*" .
grep -r "-----BEGIN.*PRIVATE KEY-----" .
Missing Authentication:
// Check for routes without authentication middleware
// Look for patterns like:
app.get('/api/admin/*', handler); // No auth middleware!
// Should be:
app.get('/api/admin/*', authenticateUser, authorizeAdmin, handler);
Weak Session Management:
# Check session configuration
grep -r "session\.\|cookie\." --include="*.js" --include="*.php" src/
# Look for insecure session settings
grep -r "httpOnly.*false\|secure.*false" src/
1. SQL Injection
// VULNERABLE
$query = "SELECT * FROM users WHERE username = '" . $_POST['username'] . "'";
// IMPACT: Database compromise, data theft
// CVSS: 9.8 (Critical)
2. Remote Code Execution
# VULNERABLE
eval(user_input) # Arbitrary code execution!
# IMPACT: Full system compromise
# CVSS: 10.0 (Critical)
3. Authentication Bypass
// VULNERABLE - No authentication check
app.get('/api/admin/users', (req, res) => {
return User.findAll(); // Anyone can access!
});
// IMPACT: Unauthorized access to sensitive data
// CVSS: 9.1 (Critical)
4. XSS (Cross-Site Scripting)
<!-- VULNERABLE -->
<div>{{ user_input }}</div> <!-- Unescaped output -->
<!-- IMPACT: Session hijacking, data theft -->
<!-- CVSS: 7.4 (High) -->
5. Insecure Deserialization
# VULNERABLE
pickle.loads(untrusted_data) # Can execute arbitrary code
# IMPACT: Remote code execution
# CVSS: 8.1 (High)
6. Broken Access Control
// VULNERABLE - User can access any user's data
app.get('/api/users/:id', (req, res) => {
return User.findById(req.params.id); // No ownership check!
});
// IMPACT: Unauthorized data access
// CVSS: 8.2 (High)
7. CSRF (Cross-Site Request Forgery)
<!-- VULNERABLE - No CSRF token -->
<form method="POST" action="/api/transfer">
<input name="amount" />
<button>Transfer</button>
</form>
<!-- IMPACT: Unauthorized actions -->
<!-- CVSS: 6.5 (Medium) -->
8. Sensitive Data Exposure
// VULNERABLE - Exposing sensitive fields
app.get('/api/users', (req, res) => {
return User.findAll(); // Returns password hashes, emails, etc.
});
// IMPACT: Data leakage
// CVSS: 5.3 (Medium)
# Install scanning tools
npm install -g snyk npm-check-updates
pip install safety pip-audit
# Run scans
npm audit --json > npm-audit.json
snyk test --json > snyk-test.json
safety check --json > safety-check.json
# Parse results
{
"critical": 2,
"high": 5,
"medium": 12,
"low": 45,
"total": 64
}
## Code Vulnerability Scan
**Tool**: Custom pattern matching + static analysis
### SQL Injection Scan
```bash
grep -rn "execute.*\$\|query.*\+" src/
Found: 8 potential SQL injection points
Example:
// src/api/search.php:45
$query = "SELECT * FROM products WHERE name LIKE '%" . $_GET['q'] . "%'";
// VULNERABLE: User input directly in SQL string
Found: 12 potential XSS vulnerabilities
Example:
// src/components/UserProfile.jsx:23
<div dangerouslySetInnerHTML={{__html: user.bio}} />
// VULNERABLE: Unescaped user input
Found: 6 potential secrets
Example:
// src/config/api.js:5
const API_KEY = 'sk_live_abc123xyz789';
// VULNERABLE: Hardcoded API key
### 3. Generate Report
```markdown
# Vulnerability Scan Report
**Date**: 2025-01-15
**Scan Duration**: 3 minutes
**Files Scanned**: 458
**Dependencies Scanned**: 245
## Executive Summary
- **Critical**: 3 vulnerabilities š“
- **High**: 8 vulnerabilities ā ļø
- **Medium**: 15 vulnerabilities ā ļø
- **Low**: 23 vulnerabilities
- **Total**: 49 vulnerabilities
## Critical Vulnerabilities (Immediate Action Required)
### 1. SQL Injection in Search Endpoint
**File**: `src/api/search.php:45`
**Severity**: CRITICAL (CVSS 9.8)
**CWE**: CWE-89 (SQL Injection)
**Vulnerable Code**:
```php
$query = "SELECT * FROM products WHERE name LIKE '%" . $_GET['q'] . "%'";
$result = mysqli_query($conn, $query);
Impact:
Remediation:
$stmt = $conn->prepare("SELECT * FROM products WHERE name LIKE ?");
$searchTerm = "%" . $_GET['q'] . "%";
$stmt->bind_param("s", $searchTerm);
$stmt->execute();
Effort: LOW (15 minutes)
File: src/config/api.js:5
Severity: CRITICAL (CVSS 9.1)
CWE: CWE-798 (Hard-coded Credentials)
Vulnerable Code:
const API_KEY = 'sk_live_abc123xyz789';
Impact:
Remediation:
const API_KEY = process.env.STRIPE_API_KEY;
// .env file (not committed)
STRIPE_API_KEY=sk_live_abc123xyz789
Effort: LOW (10 minutes)
File: src/api/admin.js:12
Severity: CRITICAL (CVSS 9.8)
CWE: CWE-306 (Missing Authentication)
Vulnerable Code:
app.get('/api/admin/users', (req, res) => {
return User.findAll(); // No authentication!
});
Impact:
Remediation:
app.get('/api/admin/users',
authenticateUser,
authorizeRole(['admin']),
(req, res) => {
return User.findAll();
}
);
Effort: MEDIUM (30 minutes)
[List of 8 high-severity issues...]
Outdated Dependencies with Known CVEs:
| Package | Current | Patched | CVE | Severity |
|---|---|---|---|---|
| lodash | 4.17.15 | 4.17.21 | CVE-2020-8203 | High |
| axios | 0.19.2 | 0.21.2 | CVE-2021-3749 | Medium |
| express | 4.16.0 | 4.17.3 | CVE-2022-24999 | Medium |
4-11. [List of high-severity issues]
12-26. [List of medium-severity issues]
27-49. [List of low-severity issues]
OWASP Top 10 Coverage:
Compliance Standards:
## Output Format
Structured vulnerability report with:
- Severity levels
- CVSS scores
- CWE classifications
- Impact assessment
- Remediation guidance
- Effort estimates
- Compliance mapping
Expert in monorepo architecture, build systems, and dependency management at scale. Masters Nx, Turborepo, Bazel, and Lerna for efficient multi-project development. Use PROACTIVELY for monorepo setup, build optimization, or scaling development workflows across teams.