Catalog
github/security-review

github

security-review

AI-powered codebase security scanner that reasons about code like a security researcher — tracing data flows, understanding component interactions, and catching vulnerabilities that pattern-matching tools miss. Use this skill when asked to scan code for security vulnerabilities, find bugs, check for SQL injection, XSS, command injection, exposed API keys, hardcoded secrets, insecure dependencies, access control issues, or any request like "is my code secure?", "review for security issues", "audit this codebase", or "check for vulnerabilities". Covers injection flaws, authentication and access control bugs, secrets exposure, weak cryptography, insecure dependencies, and business logic issues across JavaScript, TypeScript, Python, Java, PHP, Go, Ruby, and Rust.

v1.0Latest
New~2.2kUpdated Jun 26, 2026

Security Review

An AI-powered security scanner that reasons about your codebase the way a human security researcher would — tracing data flows, understanding component interactions, and catching vulnerabilities that pattern-matching tools miss.

When to Use This Skill

Use this skill when the request involves:

  • Scanning a codebase or file for security vulnerabilities
  • Running a security review or vulnerability check
  • Checking for SQL injection, XSS, command injection, or other injection flaws
  • Finding exposed API keys, hardcoded secrets, or credentials in code
  • Auditing dependencies for known CVEs
  • Reviewing authentication, authorization, or access control logic
  • Detecting insecure cryptography or weak randomness
  • Performing a data flow analysis to trace user input to dangerous sinks
  • Any request phrasing like "is my code secure?", "scan this file", or "check my repo for vulnerabilities"
  • Running /security-review or /security-review <path>

How This Skill Works

Unlike traditional static analysis tools that match patterns, this skill:

  1. Reads code like a security researcher — understanding context, intent, and data flow
  2. Traces across files — following how user input moves through your application
  3. Self-verifies findings — re-examines each result to filter false positives
  4. Assigns severity ratings — CRITICAL / HIGH / MEDIUM / LOW / INFO
  5. Proposes targeted patches — every finding includes a concrete fix
  6. Requires human approval — nothing is auto-applied; you always review first

Execution Workflow

Follow these steps in order every time:

Step 1 — Scope Resolution

Determine what to scan:

  • If a path was provided (/security-review src/auth/), scan only that scope
  • If no path given, scan the entire project starting from the root
  • Identify the language(s) and framework(s) in use (check package.json, requirements.txt, go.mod, Cargo.toml, pom.xml, Gemfile, composer.json, etc.)
  • Read references/language-patterns.md to load language-specific vulnerability patterns

Step 2 — Dependency Audit

Before scanning source code, audit dependencies first (fast wins):

  • Node.js: Check package.json + package-lock.json for known vulnerable packages
  • Python: Check requirements.txt / pyproject.toml / Pipfile
  • Java: Check pom.xml / build.gradle
  • Ruby: Check Gemfile.lock
  • Rust: Check Cargo.toml
  • Go: Check go.sum
  • Flag packages with known CVEs, deprecated crypto libs, or suspiciously old pinned versions
  • Read references/vulnerable-packages.md for a curated watchlist

Step 3 — Secrets & Exposure Scan

Scan ALL files (including config, env, CI/CD, Dockerfiles, IaC) for:

  • Hardcoded API keys, tokens, passwords, private keys
  • .env files accidentally committed
  • Secrets in comments or debug logs
  • Cloud credentials (AWS, GCP, Azure, Stripe, Twilio, etc.)
  • Database connection strings with credentials embedded
  • Read references/secret-patterns.md for regex patterns and entropy heuristics to apply

Step 4 — Vulnerability Deep Scan

This is the core scan. Reason about the code — don't just pattern-match. Read references/vuln-categories.md for full details on each category.

Injection Flaws

  • SQL Injection: raw queries with string interpolation, ORM misuse, second-order SQLi
  • XSS: unescaped output, dangerouslySetInnerHTML, innerHTML, template injection
  • Command Injection: exec/spawn/system with user input
  • LDAP, XPath, Header, Log injection

Authentication & Access Control

  • Missing authentication on sensitive endpoints
  • Broken object-level authorization (BOLA/IDOR)
  • JWT weaknesses (alg:none, weak secrets, no expiry validation)
  • Session fixation, missing CSRF protection
  • Privilege escalation paths
  • Mass assignment / parameter pollution

Data Handling

  • Sensitive data in logs, error messages, or API responses
  • Missing encryption at rest or in transit
  • Insecure deserialization
  • Path traversal / directory traversal
  • XXE (XML External Entity) processing
  • SSRF (Server-Side Request Forgery)

Cryptography

  • Use of MD5, SHA1, DES for security purposes
  • Hardcoded IVs or salts
  • Weak random number generation (Math.random() for tokens)
  • Missing TLS certificate validation

Business Logic

  • Race conditions (TOCTOU)
  • Integer overflow in financial calculations
  • Missing rate limiting on sensitive endpoints
  • Predictable resource identifiers

Step 5 — Cross-File Data Flow Analysis

After the per-file scan, perform a holistic review:

  • Trace user-controlled input from entry points (HTTP params, headers, body, file uploads) all the way to sinks (DB queries, exec calls, HTML output, file writes)
  • Identify vulnerabilities that only appear when looking at multiple files together
  • Check for insecure trust boundaries between services or modules

Step 6 — Self-Verification Pass

For EACH finding:

  1. Re-read the relevant code with fresh eyes
  2. Ask: "Is this actually exploitable, or is there sanitization I missed?"
  3. Check if a framework or middleware already handles this upstream
  4. Downgrade or discard findings that aren't genuine vulnerabilities
  5. Assign final severity: CRITICAL / HIGH / MEDIUM / LOW / INFO

Step 7 — Generate Security Report

Output the full report in the format defined in references/report-format.md.

Step 8 — Propose Patches

For every CRITICAL and HIGH finding, generate a concrete patch:

  • Show the vulnerable code (before)
  • Show the fixed code (after)
  • Explain what changed and why
  • Preserve the original code style, variable names, and structure
  • Add a comment explaining the fix inline

Explicitly state: "Review each patch before applying. Nothing has been changed yet."

Severity Guide

Severity Meaning Example
🔴 CRITICAL Immediate exploitation risk, data breach likely SQLi, RCE, auth bypass
🟠 HIGH Serious vulnerability, exploit path exists XSS, IDOR, hardcoded secrets
🟡 MEDIUM Exploitable with conditions or chaining CSRF, open redirect, weak crypto
🔵 LOW Best practice violation, low direct risk Verbose errors, missing headers
⚪ INFO Observation worth noting, not a vulnerability Outdated dependency (no CVE)

Output Rules

  • Always produce a findings summary table first (counts by severity)
  • Never auto-apply any patch — present patches for human review only
  • Always include a confidence rating per finding (High / Medium / Low)
  • Group findings by category, not by file
  • Be specific — include file path, line number, and the exact vulnerable code snippet
  • Explain the risk in plain English — what could an attacker do with this?
  • If the codebase is clean, say so clearly: "No vulnerabilities found" with what was scanned

Reference Files

For detailed detection guidance, load the following reference files as needed:

  • references/vuln-categories.md — Deep reference for every vulnerability category with detection signals, safe patterns, and escalation checkers
    • Search patterns: SQL injection, XSS, command injection, SSRF, BOLA, IDOR, JWT, CSRF, secrets, cryptography, race condition, path traversal
  • references/secret-patterns.md — Regex patterns, entropy-based detection, and CI/CD secret risks
    • Search patterns: API key, token, private key, connection string, entropy, .env, GitHub Actions, Docker, Terraform
  • references/language-patterns.md — Framework-specific vulnerability patterns for JavaScript, Python, Java, PHP, Go, Ruby, and Rust
    • Search patterns: Express, React, Next.js, Django, Flask, FastAPI, Spring Boot, PHP, Go, Rails, Rust
  • references/vulnerable-packages.md — Curated CVE watchlist for npm, pip, Maven, Rubygems, Cargo, and Go modules
    • Search patterns: lodash, axios, jsonwebtoken, Pillow, log4j, nokogiri, CVE
  • references/report-format.md — Structured output template for security reports with finding cards, dependency audit, secrets scan, and patch proposal formatting
    • Search patterns: report, format, template, finding, patch, summary, confidence
Files6
6 files · 27.9 KB

Select a file to preview

Grade adjusted by static analysis guardrails

AI scored this skill as grade A, but static analysis findings capped it to C:

  • Hardcoded credentials or secrets detected in content (max: C)
  • SSH key or credentials file access (max: B)

Overall Score

88/100

Grade

C

Adequate

Safety

92

Quality

86

Clarity

87

Completeness

83

Summary

An AI-powered security code scanner that performs multi-file data flow analysis and contextual vulnerability detection across multiple programming languages and frameworks. The skill guides agents through eight-step structured scanning: scope resolution, dependency audit, secrets detection, deep vulnerability analysis, cross-file data flow tracing, self-verification, report generation, and patch proposals. It includes reference guides covering language-specific patterns, dependency watchlists, credential detection techniques, vulnerability categories, and standardized report formatting.

Static Analysis Findings

5 findings

Patterns detected by deterministic static analysis before AI scoring. Hover over any finding code for detailed information and remediation guidance.

Credential Exposure
SEC-020Direct .env File Access10x in 3 files

Direct .env file access

SKILL.md.env2x
references/secret-patterns.md.env5x
references/report-format.md.env3x
SEC-021Hardcoded API Key or Token2x in 2 filesMax: C

Hardcoded API key or token pattern

references/secret-patterns.mdAPI_KEY: "actual-value-here
references/language-patterns.mdSECRET_KEY = 'django-insecure-...
SEC-022SSH/Credentials File AccessMax: B

SSH key or credentials file access

references/secret-patterns.mdcredentials.json
SEC-023Plaintext Password or Secret4x in 2 filesMax: C

Password or secret in plaintext

references/secret-patterns.mdpassword = "hardcoded-password
references/vuln-categories.mdpassword = "hunter2SECRET = "abc123password:', password) logger.info({ user, token }) // token shouldn3x
Command Injection
SEC-011Dynamic Shell Eval

Shell eval/exec of dynamic content

references/vulnerable-packages.mdeval`

Detected Capabilities

file reading (entire codebase scan)code analysis and pattern matchingdata flow tracing across filesCVE and vulnerability database reference lookupreport generation and formattingpatch/fix suggestion generationno file writesno shell executionno network requests

Trigger Keywords

Phrases that MCP clients use to match this skill to user intent.

scan code for vulnerabilitiessecurity review codebasefind hardcoded secretscheck for sql injectionaudit dependencies cvesdetect xss issuesreview authentication logictrace data flowsidentify access control bugsgenerate security patches

Risk Signals

INFO

SEC-020: Direct .env file access referenced in instructions

SKILL.md, Step 3 (Secrets & Exposure Scan)
INFO

SEC-011: eval/exec patterns documented as vulnerable examples to detect

references/vulnerable-packages.md, npm section; references/language-patterns.md
INFO

SEC-021 & SEC-023: Hardcoded API keys and passwords in reference documentation (intentional examples)

references/secret-patterns.md (multiple), references/language-patterns.md, references/vuln-categories.md
INFO

SEC-022: SSH keys and credentials.json file patterns documented as detection targets

references/secret-patterns.md, 'Files That Should Never Be Committed' section

Referenced Domains

External domains referenced in skill content, detected by static analysis.

apache.orgdashboard.stripe.compkg.go.devrustsec.orgvuln.go.dev

Use Cases

  • /security-review endpoint invocation for codebase auditing
  • finding SQL injection, XSS, command injection vulnerabilities
  • detecting hardcoded API keys, private keys, and database credentials
  • auditing dependency versions for known CVEs
  • identifying broken authentication and access control issues (BOLA/IDOR)
  • tracing data flows from user input to dangerous sinks
  • reviewing JWT implementations for algorithm confusion and weak secrets
  • detecting insecure cryptography and weak random number generation
  • proposing security patches with before/after code examples
  • generating standardized security audit reports with severity ratings

Quality Notes

  • Exceptional scope boundaries: skill is strictly read-only analysis — no code modifications, file writes, or shell execution
  • Well-structured 8-step workflow that is reproducible and teachable
  • Comprehensive reference materials covering five major vulnerability categories: injection, authentication/access control, secrets, cryptography, and business logic
  • Language-specific guidance for JavaScript/TypeScript, Python, Java, PHP, Go, Ruby, and Rust with framework-specific patterns (Express, Django, Flask, FastAPI, Spring Boot, Rails)
  • All hardcoded secrets in reference docs are intentional detection examples with clear headings (High-Confidence Secret Patterns, Hardcoded Passwords)
  • Explicit severity ratings guide with clear CVSS-like mapping (CRITICAL/HIGH/MEDIUM/LOW/INFO)
  • Self-verification pass (Step 6) built into workflow to reduce false positives
  • Reference materials include safe patterns and escalation checkers alongside detection signals
  • Structured output format enforces consistency: executive summary table, finding cards with location/code/risk/fix, confidence ratings, patch proposals only for CRITICAL/HIGH
  • Clear guidance on false positives (UUIDs, Lorem ipsum, intentional placeholders)
  • Limitations acknowledged: static analysis only, does not execute code, should pair with dynamic testing
  • No credentials or secrets stored in skill itself; all examples are deliberately anonymized or prefixed with placeholder text
Model: claude-haiku-4-5-20251001Analyzed: Jun 26, 2026

Reviews

Add this skill to your library to leave a review.

No reviews yet

Be the first to share your experience.

Use github/security-review in your dev environment

Command Palette

Search for a command to run...