Performing Security Code Review
Overview
Conducts security-focused code reviews by scanning source files for common vulnerability patterns including SQL injection, XSS, authentication flaws, insecure dependencies, and secret exposure. Produces structured severity-rated reports with specific remediation guidance.
Prerequisites
- Read access to all source files in the target project
grep available on PATH for pattern matching
- Access to
package.json or equivalent dependency manifest for dependency auditing
- Familiarity with OWASP Top 10 vulnerability categories
Instructions
- Identify the scope of the review: specific files, directories, or the entire codebase. Confirm the primary language(s) and framework(s) in use.
- Scan for hardcoded secrets and credentials:
- Search for patterns matching API keys, tokens, passwords, AWS access keys (
AKIA...), and private key headers (BEGIN PRIVATE KEY).
- Flag any
.env files or configuration files containing plaintext secrets.
- Analyze code for injection vulnerabilities:
- Identify raw SQL string concatenation (SQL injection risk).
- Locate unsanitized user input rendered in HTML (XSS risk).
- Check for
eval(), exec(), or Function() calls with dynamic input (code injection risk).
- Review authentication and authorization logic:
- Verify password hashing uses strong algorithms (bcrypt, argon2) rather than MD5/SHA1.
- Check for missing authentication on sensitive endpoints.
- Identify overly permissive CORS configurations.
- Audit dependencies for known vulnerabilities:
- Run
npm audit or equivalent package manager audit command.
- Cross-reference dependency versions against known CVE databases.
- Check for insecure communication patterns:
- Flag HTTP URLs where HTTPS is expected.
- Identify disabled TLS certificate verification.
- Compile findings into a structured report sorted by severity (Critical, High, Medium, Low), including the vulnerable code location, explanation, and remediation steps.
Output
A structured security review report containing:
- Summary with total findings count by severity level
- Per-finding entries with: file path, line number, vulnerability type, severity, code snippet, explanation, and recommended fix
- Dependency audit results with CVE identifiers where applicable
- Overall risk assessment (Critical / High / Medium / Low / Clean)
Error Handling
| Error |
Cause |
Solution |
| No source files found |
Incorrect scope path or empty directory |
Verify the target directory path and confirm it contains source files |
| Binary files in scan |
Non-text files matched by search patterns |
Exclude binary extensions and node_modules/ from scans |
| Dependency manifest missing |
No package.json, requirements.txt, or equivalent |
Skip dependency audit; note in report that dependency analysis was not possible |
| Permission denied on files |
Restricted file access |
Request read permissions or narrow the review scope to accessible files |
| False positive on secret pattern |
Benign string matching secret regex |
Verify context before reporting; mark as potential false positive if the match appears in test fixtures or documentation |
Examples
SQL injection review:
Trigger: "Review this database query code for SQL injection vulnerabilities."
Process: Scan all files containing SQL query construction. Identify string concatenation with user input ("SELECT * FROM users WHERE id = " + userId). Report as High severity with remediation: use parameterized queries or prepared statements.
Dependency vulnerability scan:
Trigger: "Check this project's dependencies for known security vulnerabilities."
Process: Run npm audit on the project. Parse output for vulnerabilities. Report each finding with CVE identifier, affected package, installed version, and patched version. Recommend npm audit fix or manual version pinning.
Full codebase security audit:
Trigger: "Run a security scan on this codebase."
Process: Execute all seven scan categories (secrets, injection, auth, dependencies, communication, dangerous commands, obfuscation). Produce a comprehensive report with findings grouped by category and sorted by severity.
Resources
1---
2name: performing-security-code-review-2
3description: |
4 Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin. it analyzes code for potential vulnerabilities like sql injection, xss, authentication flaws, and insecure dependencies. AI assistant uses this skill wh... Use when assessing security or running audits. Trigger with phrases like 'security scan', 'audit', or 'vulnerability'.
5allowed-tools: Read, Write, Edit, Grep, Glob, Bash(cmd:*)
6version: 1.0.0
7author: Jeremy Longshore <jeremy@intentsolutions.io>
8license: MIT
9compatible-with: claude-code, codex, openclaw
10tags: [example, security, authentication, audit]
11
12---
13
14# Performing Security Code Review
15
16## Overview
17
18Conducts security-focused code reviews by scanning source files for common vulnerability patterns including SQL injection, XSS, authentication flaws, insecure dependencies, and secret exposure. Produces structured severity-rated reports with specific remediation guidance.
19
20## Prerequisites
21
22- Read access to all source files in the target project
23- `grep` available on PATH for pattern matching
24- Access to `package.json` or equivalent dependency manifest for dependency auditing
25- Familiarity with OWASP Top 10 vulnerability categories
26
27## Instructions
28
291. Identify the scope of the review: specific files, directories, or the entire codebase. Confirm the primary language(s) and framework(s) in use.
302. Scan for hardcoded secrets and credentials:
31 - Search for patterns matching API keys, tokens, passwords, AWS access keys (`AKIA...`), and private key headers (`BEGIN PRIVATE KEY`).
32 - Flag any `.env` files or configuration files containing plaintext secrets.
333. Analyze code for injection vulnerabilities:
34 - Identify raw SQL string concatenation (SQL injection risk).
35 - Locate unsanitized user input rendered in HTML (XSS risk).
36 - Check for `eval()`, `exec()`, or `Function()` calls with dynamic input (code injection risk).
374. Review authentication and authorization logic:
38 - Verify password hashing uses strong algorithms (bcrypt, argon2) rather than MD5/SHA1.
39 - Check for missing authentication on sensitive endpoints.
40 - Identify overly permissive CORS configurations.
415. Audit dependencies for known vulnerabilities:
42 - Run `npm audit` or equivalent package manager audit command.
43 - Cross-reference dependency versions against known CVE databases.
446. Check for insecure communication patterns:
45 - Flag HTTP URLs where HTTPS is expected.
46 - Identify disabled TLS certificate verification.
477. Compile findings into a structured report sorted by severity (Critical, High, Medium, Low), including the vulnerable code location, explanation, and remediation steps.
48
49## Output
50
51A structured security review report containing:
52- Summary with total findings count by severity level
53- Per-finding entries with: file path, line number, vulnerability type, severity, code snippet, explanation, and recommended fix
54- Dependency audit results with CVE identifiers where applicable
55- Overall risk assessment (Critical / High / Medium / Low / Clean)
56
57## Error Handling
58
59| Error | Cause | Solution |
60|---|---|---|
61| No source files found | Incorrect scope path or empty directory | Verify the target directory path and confirm it contains source files |
62| Binary files in scan | Non-text files matched by search patterns | Exclude binary extensions and `node_modules/` from scans |
63| Dependency manifest missing | No `package.json`, `requirements.txt`, or equivalent | Skip dependency audit; note in report that dependency analysis was not possible |
64| Permission denied on files | Restricted file access | Request read permissions or narrow the review scope to accessible files |
65| False positive on secret pattern | Benign string matching secret regex | Verify context before reporting; mark as potential false positive if the match appears in test fixtures or documentation |
66
67## Examples
68
69**SQL injection review:**
70Trigger: "Review this database query code for SQL injection vulnerabilities."
71Process: Scan all files containing SQL query construction. Identify string concatenation with user input (`"SELECT * FROM users WHERE id = " + userId`). Report as High severity with remediation: use parameterized queries or prepared statements.
72
73**Dependency vulnerability scan:**
74Trigger: "Check this project's dependencies for known security vulnerabilities."
75Process: Run `npm audit` on the project. Parse output for vulnerabilities. Report each finding with CVE identifier, affected package, installed version, and patched version. Recommend `npm audit fix` or manual version pinning.
76
77**Full codebase security audit:**
78Trigger: "Run a security scan on this codebase."
79Process: Execute all seven scan categories (secrets, injection, auth, dependencies, communication, dangerous commands, obfuscation). Produce a comprehensive report with findings grouped by category and sorted by severity.
80
81## Resources
82
83- [OWASP Top 10](https://owasp.org/www-project-top-ten/) -- industry-standard vulnerability classification
84- [Node.js Security Checklist](https://blog.risingstack.com/node-js-security-checklist/) -- Node-specific security guidance
85- [CWE/SANS Top 25](https://cwe.mitre.org/top25/) -- most dangerous software weaknesses
86- `${CLAUDE_SKILL_DIR}/references/README.md` -- bundled reference materials