Skip to main content

security-review

OWASP Top 10 security vulnerability scanner. Detects secret exposure, injection flaws, auth/authz gaps, supply-chain risks, security misconfigurations, and logging failures via static analysis. Use this before every deployment, before every PR merge, and whenever auth/payment/billing code changes. Invoke immediately on "security check", "vulnerability scan", or "secret exposure" requests.

Source facts

Repository
insightflo/claude-impl-tools
Last source activity
March 17, 2026 at 06:04
Detected SKILL.md language
English
Stars
17
Forks
3

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
security-review
description
OWASP Top 10 security vulnerability scanner. Detects secret exposure, injection flaws, auth/authz gaps, supply-chain risks, security misconfigurations, and logging failures via static analysis. Use this before every deployment, before every PR merge, and whenever auth/payment/billing code changes. Invoke immediately on "security check", "vulnerability scan", or "secret exposure" requests.
version
1.1.0
updated
2026-03-02T00:00:00.000Z
# Security Review (OWASP Top 10) > **Purpose**: Detect and surface critical security flaws in a codebase via static analysis before deployment, and deliver reproducible **evidence** and **remediation guidance**. > > **Core principle**: This skill is **analysis and reporting only**. It does not auto-fix anything. > > **/audit integration**: Performs the **security track** within `/audit`'s 5-stage quality audit and can deliver results as standard artifacts. --- ## MCP Dependencies | MCP | Required | Purpose | |-----|----------|---------| | None | - | Uses basic search/static analysis tools | > External SAST/Dependency Scan result files are supported in **interpret/summarize** mode only. --- ## Absolute Prohibitions (Safety & Constraints) 1. No writing exploit code or attack payloads - Reproduction notes must be limited to "input conditions / flow / expected vs. actual" — no attack code 2. No unsubstantiated assertions - Every finding must include `file_path:line`-based evidence 3. No re-exposing secrets or PII - Raw values must never appear in reports, terminal output, or artifacts 4. No scanning unauthorized targets - Only inspect explicitly approved code/environments; do not access or test external systems ### Sensitive Data Masking Rules - Tokens, keys, session values, passwords: **raw values forbidden** - Default masking: `first 3–4 chars + "***" + (length/type hint)` - e.g., `AKIA*** (len=20)`, `sk-*** (prefix=sk-)`, `***PRIVATE KEY***` - When quoting log/sample data, minimize or de-identify user identifiers (email/phone/IP) ### Emergency Response Triggers (operational view) - If any of the following apply, classify immediately as **CRITICAL candidate** and recommend **revocation/reissuance/impact assessment** before any fix: - A secret that appears to be an active (production) key is exposed - Credentials directly tied to payment/PII/admin access are exposed --- ## Actions to Execute Immediately on Skill Activation (High-level) 1. **Pre-flight scoping** (project characteristics, excluded paths, output artifact format) 2. **Secret/credential exposure** scan + post-exposure response guidance 3. **OWASP A01–A10** coverage (required: A04/A06/A10 included) 4. **Web/API high-risk checks** (SSRF, file upload, path traversal, deserialization, CSRF, Clickjacking) 5. **Dependency/supply-chain** risk check (lockfile + install scripts + drift) 6. **Triage (false-positive filtering)**: Source→Sink flow + defense mechanism verification 7. **Report**: prioritized findings + remediation guide + verification steps --- ## Execution Process (Checklist) ### Stage 0: Pre-flight Scoping (required) - **In-scope (default)** - `src/`, `app/`, `server/`, `api/`, `infra/` (if present), config files - **Out-of-scope (default)** - Generated/vendor/cache: `**/node_modules/**`, `**/dist/**`, `**/build/**`, `**/.next/**`, `**/coverage/**`, `**/*.min.*` - Test fixtures included by default (can be excluded if noisy) - **Output artifacts** - (default) Markdown report - (optional) JSON artifact for `/audit` integration **Completion criteria**: include/exclude paths, scan mode (quick/standard/deep), and output format (md/json) confirmed. ### Stage 1: Secret/Credential Exposure **Check items** - Hardcoded API keys, access tokens, private keys, DB URLs - `.env*` and credential files tracked in the repo - Sensitive data printed in log/error messages **Evidence requirements** - `file_path:line` + (up to 5 lines) snippet (masking applied) **Post-exposure response procedure (include in report)** - Key identifier (service/environment only if possible) + exposure location - Whether revocation/reissuance is needed + estimated impact scope (env: dev/stage/prod) **Completion criteria**: Secret candidates classified as Confirmed / FP (false positive) / Needs-more-context. ### Stage 2: OWASP Top 10 (A01–A10) Full Matrix > Each item requires at least one "detection rule" and "required evidence". | OWASP | Core question (summary) | Minimum evidence (required) | |---|---|---| | A01 Broken Access Control | Is authorization validation missing or bypassable? | Guard/policy code location + access path/resource identifier handling | | A02 Cryptographic Failures | Is storage/transmission/key management weak? | Algorithm/mode/key storage location, TLS/cookie config | | A03 Injection | Does external input reach a dangerous sink? | Source→Sink path + query/command/template construction method | | A04 Insecure Design | Are security controls missing at the design level? | Evidence of absent threat model / ambiguous auth model / unprotected sensitive operations | | A05 Security Misconfiguration | Are there unsafe settings, headers, or debug flags? | Config files/server init code + actual values | | A06 Vulnerable & Outdated Components | Are vulnerable or outdated components in use? | lockfile/version/supply-chain signals (postinstall, etc.) | | A07 Identification & Authentication Failures | Is the authentication flow broken? | Token validation (signature/expiry/iss/aud), session/reset flow evidence | | A08 Software & Data Integrity Failures | Is there update/execution without integrity verification? | External script/update/plugin load paths | | A09 Security Logging & Monitoring Failures | Are security events being logged and detected? | Minimum event list coverage + logging locations | | A10 Server-Side Request Forgery (SSRF) | Does the server make requests based on attacker-controlled input? | URL fetch call sites + validation/blocking logic | #### A03 Injection Sub-categories (required) - SQL / NoSQL - Command / Shell argument injection - Template injection - LDAP / XPath - CRLF (Header) / Response splitting #### Auth/AuthZ Detailed Checklist (required) - JWT/session: signature, expiry, `iss/aud` and other critical claim validation - Password reset / email verification: token lifetime, single-use, post-use invalidation - Privilege escalation: horizontal (IDOR), vertical (role escalation) paths - Brute-force defense: rate limit/lockout/2FA enforcement points (if applicable) ### Stage 3: Web/API High-Risk Checks (required) #### SSRF (overlaps A10 but checked separately) - Does the server fetch externally supplied URLs? - Is an allowlist enforced? Are internal IPs/metadata endpoints blocked? #### Path Traversal - Is user input combined with file paths or filenames? - Missing validation after `../`, absolute paths, URL decoding? #### File Upload - Extension/MIME/content-sniffing validation, isolated storage path, executable file blocking - Post-upload access control (private files/signed URLs, etc.) #### Deserialization - Is untrusted input processed with unsafe deserialization? - e.g., Python `pickle`, unsafe YAML load, Java `ObjectInputStream` (language-specific) #### Browser Security: CSRF / Clickjacking - CSRF defense token / SameSite policy on state-mutating requests - Clickjacking protection: `X-Frame-Options` or CSP `frame-ancestors` ### Stage 4: Dependency/Supply-Chain Check **Use when available (if environment permits)** - Node.js: `npm audit`, `pnpm audit`, `yarn audit` - Python: `pip-audit`, `poetry audit` **Supply Chain Risk (static checks)** - Lockfile integrity/drift (e.g., `package-lock.json` vs. `package.json` mismatch) - Presence of `postinstall/preinstall` install scripts - Signs of newly added or unfamiliar packages (typosquatting suspects) - Remote script download/execution patterns **Completion criteria**: Record "vulnerabilities (version)" and "supply-chain signals (behavior)" separately. ### Stage 4.5: Triage (False-Positive Filtering) & Evidence Collection Before reporting any candidate vulnerability, verify the following: - **Source→Sink data flow**: Does external input (Source) reach a dangerous sink without defense? - **Defense mechanism check**: Presence of sanitization/encoding/parameterization/type casting - **Evidence collection rules**: `file:line` + snippet (up to 5 lines, masked) + 1–2 sentences on "why this is dangerous" **Completion criteria**: All candidates classified as Confirmed / Likely / Needs-context / False-positive. ### Stage 5: Report #### Priority Scoring Rule - Priority = **Severity × Exploitability × Exposure Scope × Asset Criticality (PII/payment/admin)** #### Finding Required Fields Each issue must include the following fields: - **finding_id**: `SR-0001` format - **title**: One-line summary - **owasp / cwe** (where available) - **severity**: CRITICAL/HIGH/MEDIUM/LOW - **confidence**: High/Medium/Low (static analysis confidence) - **location**: `file_path:line` - **evidence**: (up to 5 lines) snippet + key evidence summary - **impact**: CIA (Confidentiality/Integrity/Availability) + target asset (e.g., PII, payment, admin access) - **reproduction_notes (safe)**: Describe input conditions and flow without attack code - **remediation**: - Safe pattern (recommended) - Unsafe pattern (avoid) - Verification method (test/re-scan checklist) - **status**: New/Confirmed/False-Positive/Accepted-Risk/Fixed (where known) --- ## Output Format ### 1) Summary Box - Total score (optional), verdict (OK/NEEDS FIX), severity counts - Scan scope/mode/excluded paths summary ### 2) Top Findings Table | ID | Severity | OWASP | Title | Location | Confidence | |---|---|---|---|---|---| | SR-0001 | HIGH | A03 | ... | `src/...:123` | High | ### 3) Detailed Findings - One section per finding, using the required fields template above ### 4) Priority Actions (Top 3) 1. Immediately fix and re-verify CRITICAL/HIGH items 2. Harden shared auth/authz guards and input validation layer 3. Revoke/reissue secrets where exposure is confirmed ### 5) Confidence & Limitations (required) - State the limits of static analysis, out-of-scope areas, and items requiring runtime/environment verification --- ## Command Flags | Command | Description | |--------|-------------| | `/security-review` | Default (standard) scan | | `/security-review --mode quick` | Fast scan of core rules only | | `/security-review --mode deep` | Full rules + supply-chain/config deep scan | | `/security-review --path <dir>` | Scan specified path only | | `/security-review --include "src/**"` | Specify include pattern | | `/security-review --exclude "**/node_modules/**,**/dist/**"` | Specify exclude pattern | | `/security-review --checks "secrets,auth,ssrf"` | Re-scan specific categories only | | `/security-review --summary` | Summary-focused report | | `/security-review --owasp` | OWASP-mapping-focused output | | `/security-review --format md` | Default output (Markdown) | | `/security-review --format json --out .claude/security-review.json` | JSON artifact (automation/integration) | | `/security-review --min-confidence high` | Output High confidence issues only | | `/security-review --severity-threshold high` | Use High and above as summary/gate threshold | | `/security-review --fail-on high` | Fail if any High or above is unresolved (pipeline use) | | `/security-review --since <git-ref>` | Delta scan focused on changed code | | `/security-review --baseline <file>` | Compare against existing baseline (skip known/accepted issues) | --- ## `/audit` Integration Contract ### Role Separation - `/audit`: Aggregate score / gate verdict / overall quality integration - `security-review`: Security flaw identification + evidence + remediation guidance ### Output Artifacts (recommended) - Default path: `.claude/security-review.json` (or `--out`) - Minimum required fields: - `scan`: include/exclude, mode, checks, timestamp - `findings[]`: required finding fields - `limits`: out-of-scope, unchecked items - `redaction`: masking policy (raw values forbidden) ### Deduplication Rules (recommended) - Dedup key: `rule_id (or owasp+cwe) + file + line + sink/source` - Same issue counts as one; if evidence strengthens, update evidence only ### Stage Mapping (recommended) - Attach this skill's results (JSON/report) as "evidence" in the audit security stage - If other skills/tools provide SAST results, focus on "interpretation/prioritization" rather than duplicate detection --- ## Suggested Next Steps | Situation | Recommended skill | Description | |-----------|-------------------|-------------| | High-risk vulnerability found | `/agile iterate` | Create and execute prioritized fix tasks | | Pre-deployment comprehensive check | `/audit` | Full quality audit including security | | Simultaneous code quality improvement | `/code-review` | Two-stage review to prevent quality regressions | | Prevent recurring vulnerabilities | `/guardrails` | Strengthen security guards at generation stage | --- ## Hook Integration | Hook | Effect | |------|--------| | `skill-router` | Auto-detects `/security-review` keyword | | `post-edit-analyzer` | Auto-re-checks security patterns after edits | | `git-commit-checker` | Warns when high-risk vulnerabilities remain unresolved | --- **Last Updated**: 2026-03-02 (v1.1.0 - Full rewrite: OWASP A01–A10 complete matrix, Web/API high-risk checks, triage, artifacts/flags, /audit contract added)
View on GitHub