secure-agent-playbook

Play: Security Code Review

A security code review identifies vulnerabilities in application logic, authentication, authorization, cryptography, and data handling. This play structures the review around OWASP weakness classes (injection, auth, crypto, etc.) and is applicable to any language or framework. Reviews can target full codebases, pull request diffs, or specific modules, and findings are mapped to OWASP standards and OpenCRE for multi-framework traceability.

Review code changes or codebases for security vulnerabilities, mapping findings to OWASP standards and OpenCRE cross-references for multi-framework traceability.

Trigger Conditions

Use this skill when:

Inputs

Procedure

1. Scope & Context

Before diving in, establish:

2. Systematic Review by Vulnerability Class

Review in priority order — highest-impact classes first:

A. Injection (CWE-74, OWASP A03, OpenCRE 161-451)

ASVS refs: data/asvs/V12.1.md (Input Validation), data/asvs/V13.1.md (Output Encoding), data/asvs/V5.3.md (File Storage)

Subtype What to Look For
SQL Injection String concatenation in queries, missing parameterization, ORM raw queries
Command Injection User input in exec/spawn/system calls, unsanitized shell arguments
XSS User input rendered without output encoding, unsafe DOM manipulation, unescaped template output
SSTI User input in template strings that get evaluated server-side
LDAP Injection User input in LDAP filters without escaping
Path Traversal User input in file paths without canonicalization, ../ not blocked
Header Injection User input in HTTP headers (CRLF injection)
Log Injection User input written to logs without sanitization

B. Authentication & Session (CWE-287, OWASP A07, OpenCRE 633-428)

ASVS refs: data/asvs/V2.1.md–V2.4.md (Authentication), data/asvs/V3.1.md–V3.7.md (Session Management)

C. Authorization (CWE-862, OWASP A01, OpenCRE 724-770)

ASVS refs: data/asvs/V4.1.md–V4.4.md (Access Control)

D. Cryptography (CWE-327, OWASP A02, OpenCRE 278-646)

ASVS refs: data/asvs/V6.1.md–V6.8.md (Cryptography)

E. Data Exposure (CWE-200, OWASP A01, OpenCRE 126-668)

ASVS refs: data/asvs/V8.1.md–V8.4.md (Data Protection), data/asvs/V7.1.md–V7.6.md (Error Handling & Logging)

F. Security Misconfiguration (OWASP A05, OpenCRE 233-748)

ASVS refs: data/asvs/V10.1.md–V10.7.md (Configuration)

G. Deserialization & Data Integrity (CWE-502, OWASP A08, OpenCRE 854-643)

ASVS refs: data/asvs/V11.1.md–V11.7.md (Business Logic)

3. Framework-Specific Checks

Apply checks specific to the detected framework:

Framework Key Checks
React/Next.js XSS via unsafe HTML rendering, SSRF in server-side data fetching, exposed API routes
Express/Node Missing helmet, no rate limiting, prototype pollution, regex DoS
Django Raw SQL, CSRF exemptions, DEBUG=True, SECRET_KEY exposure
Flask Jinja2 autoescape disabled, unsafe session serialization, debug mode
Spring SpEL injection, actuator exposure, mass assignment
Rails Mass assignment, render user input, SQL fragments
Go net/http Missing timeouts, TOCTOU in file operations, integer overflow

4. Diff-Specific Analysis (for PR reviews)

When reviewing a diff rather than a full codebase:

5. Produce Findings

For each issue:

Output Format

## Security Code Review: [Target]

### Scope
- **Files reviewed**: [count or list]
- **Language/Framework**: [detected]
- **Review type**: Full | PR diff | Targeted

### Findings
[Standard finding template for each issue, sorted by severity]

### Positive Observations
[Security controls that ARE in place — acknowledge good practices]

### Summary
| Severity | Count |
|----------|-------|
| CRITICAL | N |
| HIGH | N |
| MEDIUM | N |
| LOW | N |
| INFO | N |

Tools & Resources

Static Analysis Tools

Language-Specific

Code Review Checkers

References