jgamaraalv

owasp-security-review

"Review code and architectures against the OWASP Top 10:2025 — the ten most critical web application security risks. Use when: (1) reviewing code for security vulnerabilities, (2) auditing a feature or codebase against OWASP categories, (3) providing remediation guidance for identified vulnerabilities, (4) writing new code and needing secure coding patterns. Triggers: 'review for security', 'OWASP audit', 'check for vulnerabilities','security checklist', 'is this code secure', 'security review', 'fix vulnerability'."

jgamaraalv 15 Updated 3mo ago

Resources

1
GitHub

Install

npx skillscat add jgamaraalv/ts-dev-kit/owasp-security-review

Install via the SkillsCat registry.

SKILL.md

OWASP Top 10:2025 Security Review

Quick reference

# Category Key risk Avg incidence
A01 Broken Access Control Unauthorized data access, privilege escalation, SSRF, CSRF 3.74%
A02 Security Misconfiguration Default creds, verbose errors, missing hardening, XXE 3.00%
A03 Software Supply Chain Failures Vulnerable/malicious dependencies, compromised build pipelines 5.72%
A04 Cryptographic Failures Weak algorithms, hardcoded keys, missing encryption, weak hashing 3.80%
A05 Injection SQLi, XSS, command injection, LDAP/XPath/EL injection 3.08%
A06 Insecure Design Missing threat modeling, business logic flaws, insufficient controls 1.86%
A07 Authentication Failures Credential stuffing, weak passwords, session fixation, missing MFA 2.92%
A08 Software/Data Integrity Failures Unsigned updates, insecure deserialization, untrusted CDN code 2.75%
A09 Security Logging & Alerting Failures Missing audit logs, no alerting, log injection, sensitive data in logs 3.91%
A10 Mishandling of Exceptional Conditions Failing open, info leakage via errors, unchecked return values 2.95%

Workflows

1. Code review for security

Systematically check the code against each relevant category:

  1. Identify the code's surface area — Does it handle auth? User input? File uploads? External data? Crypto? Error responses?
  2. Select relevant categories from the table above based on the surface area.
  3. Load the reference file for each relevant category and check the code against the "What to look for" section.
  4. Report findings grouped by category with severity (Critical/High/Medium/Low), the specific code location, and a concrete fix.

Priority order for review (highest impact first):

  • [CRITICAL] Input handling code → A05 (Injection), A01 (Access Control)
  • [CRITICAL] Auth/session code → A07 (Authentication), A01 (Access Control)
  • [HIGH] Data storage/transmission → A04 (Cryptographic Failures)
  • [HIGH] Configuration/deployment → A02 (Security Misconfiguration)
  • [HIGH] Dependencies → A03 (Supply Chain)
  • [MEDIUM] Error handling → A10 (Exceptional Conditions), A09 (Logging)
  • [MEDIUM] Architecture/design → A06 (Insecure Design)
  • [MEDIUM] Data integrity → A08 (Integrity Failures)

2. Security audit checklist

Generate a checklist for a feature or codebase:

  1. Read the feature/codebase to understand its scope.
  2. For each of the 10 categories, determine if it applies.
  3. For applicable categories, load the reference file and produce a checklist of items to verify.
  4. Output a markdown checklist grouped by category.

3. Remediation guidance

When a vulnerability is identified:

  1. Classify it into the correct OWASP category.
  2. Load the corresponding reference file.
  3. Apply the prevention checklist to produce a specific, actionable fix.
  4. Provide a code example of the fix when possible.

Reference files

Load the relevant file when you need detailed guidance for a specific category:

Severity classification

Use these severity levels when reporting findings:

  • Critical: Directly exploitable, leads to full system compromise or mass data breach (e.g., SQLi with no parameterization, hardcoded admin credentials, missing auth on admin endpoints).
  • High: Exploitable with moderate effort, significant data exposure or privilege escalation (e.g., IDOR, weak password hashing, SSRF, deserialization of untrusted data).
  • Medium: Exploitable under specific conditions, limited impact (e.g., missing CSRF protection, verbose error messages, missing security headers).
  • Low: Defense-in-depth issue, minimal direct impact (e.g., missing rate limiting, incomplete logging, suboptimal crypto configuration).

Output format

When reporting security findings, use this structure:

### [SEVERITY] A0X: Category Name — Brief title

**Location**: `file:line`
**Risk**: What can go wrong and the impact.
**Finding**: What the code does wrong.
**Fix**: Specific remediation with code example.