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
Source: jeremylongshore/claude-code-plugins-plus-skills → skills/.curated/performing-security-code-review/SKILL.md
Also appears in: jeremylongshore/claude-code-plugins-plus-skills/plugins/examples/security-agent/skills/performing-security-code-review/SKILL.md
1---2name: performing-security-code-review3description: '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''. '4---5
6# Performing Security Code Review
7
8## Overview
9
10Conducts 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.
11
12## Prerequisites
13
14- Read access to all source files in the target project
15- `grep` available on PATH for pattern matching
16- Access to `package.json` or equivalent dependency manifest for dependency auditing
17- Familiarity with OWASP Top 10 vulnerability categories
18
19## Instructions
20
211. Identify the scope of the review: specific files, directories, or the entire codebase. Confirm the primary language(s) and framework(s) in use.
222. Scan for hardcoded secrets and credentials:
23 - Search for patterns matching API keys, tokens, passwords, AWS access keys (`AKIA...`), and private key headers (`BEGIN PRIVATE KEY`).
24 - Flag any `.env` files or configuration files containing plaintext secrets.
253. Analyze code for injection vulnerabilities:
26 - Identify raw SQL string concatenation (SQL injection risk).
27 - Locate unsanitized user input rendered in HTML (XSS risk).
28 - Check for `eval()`, `exec()`, or `Function()` calls with dynamic input (code injection risk).
294. Review authentication and authorization logic:
30 - Verify password hashing uses strong algorithms (bcrypt, argon2) rather than MD5/SHA1.
31 - Check for missing authentication on sensitive endpoints.
32 - Identify overly permissive CORS configurations.
335. Audit dependencies for known vulnerabilities:
34 - Run `npm audit` or equivalent package manager audit command.
35 - Cross-reference dependency versions against known CVE databases.
366. Check for insecure communication patterns:
37 - Flag HTTP URLs where HTTPS is expected.
38 - Identify disabled TLS certificate verification.
397. Compile findings into a structured report sorted by severity (Critical, High, Medium, Low), including the vulnerable code location, explanation, and remediation steps.
40
41## Output
42
43A structured security review report containing:
44
45- Summary with total findings count by severity level
46- Per-finding entries with: file path, line number, vulnerability type, severity, code snippet, explanation, and recommended fix
47- Dependency audit results with CVE identifiers where applicable
48- Overall risk assessment (Critical / High / Medium / Low / Clean)
49
50## Error Handling
51
52| Error | Cause | Solution |
53|---|---|---|
54| No source files found | Incorrect scope path or empty directory | Verify the target directory path and confirm it contains source files |
55| Binary files in scan | Non-text files matched by search patterns | Exclude binary extensions and `node_modules/` from scans |
56| Dependency manifest missing | No `package.json`, `requirements.txt`, or equivalent | Skip dependency audit; note in report that dependency analysis was not possible |
57| Permission denied on files | Restricted file access | Request read permissions or narrow the review scope to accessible files |
58| 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 |
59
60## Examples
61
62**SQL injection review:**
63Trigger: "Review this database query code for SQL injection vulnerabilities."
64Process: 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.
65
66**Dependency vulnerability scan:**
67Trigger: "Check this project's dependencies for known security vulnerabilities."
68Process: 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.
69
70**Full codebase security audit:**
71Trigger: "Run a security scan on this codebase."
72Process: 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.
73
74## Resources
75
76- [OWASP Top 10](https://owasp.org/www-project-top-ten/) -- industry-standard vulnerability classification
77- [Node.js Security Checklist](https://blog.risingstack.com/node-js-security-checklist/) -- Node-specific security guidance
78- [CWE/SANS Top 25](https://cwe.mitre.org/top25/) -- most dangerous software weaknesses
79- `${CLAUDE_SKILL_DIR}/references/README.md` -- bundled reference materials
80
81---
82
83**Source:** [`jeremylongshore/claude-code-plugins-plus-skills`](https://github.com/jeremylongshore/claude-code-plugins-plus-skills) → `skills/.curated/performing-security-code-review/SKILL.md`
84
85**Also appears in:** `jeremylongshore/claude-code-plugins-plus-skills/plugins/examples/security-agent/skills/performing-security-code-review/SKILL.md`