askill
security-review

security-reviewSafety 95Repository

Use when asked for a security audit/review or vulnerability hunt (injection, XSS, authn/authz, crypto, SSRF, secrets) and report only high-confidence exploitable findings.

4 stars
1.2k downloads
Updated 2/20/2026

Package Files

Loading files...
SKILL.md

Security Review Skill

Goal: find exploitable vulnerabilities. Report only findings with high confidence.

Scope: Research vs Reporting (Mandatory)

  • Report scope: only user-requested files/diff/component.
  • Research scope: whole codebase as needed to confirm exploitability.

Before reporting, verify:

  • true input source (attacker-controlled vs server-controlled)
  • upstream validation/sanitization
  • framework default protections
  • relevant config/middleware/infra behavior

Pattern matching alone is insufficient.

Confidence Policy

LevelCriteriaAction
Highvulnerable sink + attacker-controlled path confirmedReport
Mediumsuspicious pattern, source/control unclearMark "Needs verification"
Lowtheoretical or defense-in-depth onlyDo not report

Do Not Flag

  • tests (unless security of tests requested)
  • dead/commented code
  • constants and server-controlled configuration values
  • paths requiring prior auth without bypass risk (state auth requirement)

Server-controlled examples (usually safe)

SourceExample
framework settingssettings.API_URL
env varsos.environ.get(...)
server config filesconfig.yaml
hardcoded constantsBASE_URL = ...

SSRF contrast:

# Vulnerable: attacker-controlled URL
requests.get(request.GET.get('url'))

# Usually safe: server-controlled URL
requests.get(f"{settings.SEER_AUTOFIX_URL}{path}")

Framework-Mitigation Awareness

Do not flag auto-escaped/parameterized-safe patterns unless mitigations are bypassed.

PatternUsually safe because
Django {{ x }}auto-escaped
React {x}escaped by default
Vue {{ x }}escaped by default
ORM filtersparameterized queries
parameterized SQL APIsbound parameters

Flag only when bypass exists:

  • Django: |safe, autoescape off, mark_safe(user_input)
  • React: dangerouslySetInnerHTML with user input
  • Vue: v-html with user input
  • ORM raw SQL interpolation

Review Process

1) Detect code context

ContextLoad refs
API/routesauthorization.md, authentication.md, injection.md
Frontend/templatesxss.md, csrf.md
Files/uploadsfile-security.md
Crypto/secretscryptography.md, data-protection.md
Serializationdeserialization.md
Outbound requestsssrf.md
Business flowsbusiness-logic.md
API designapi-security.md
Config/CORS/headersmisconfiguration.md
CI/depssupply-chain.md
Errors/loggingerror-handling.md, logging.md

2) Load language guide

IndicatorsGuide
.py, Django/Flask/FastAPIlanguages/python.md
.js/.ts, Express/React/Vue/Nextlanguages/javascript.md
.golanguages/go.md
.rslanguages/rust.md
Java/Springlanguages/java.md

3) Load infra guide if needed

ArtifactGuide
Dockerinfrastructure/docker.md
Kubernetes/Helminfrastructure/kubernetes.md
Terraforminfrastructure/terraform.md
CI workflowinfrastructure/ci-cd.md
Cloud/IAMinfrastructure/cloud.md

4) Validate exploitability before reporting

For each candidate:

  1. Trace data flow to input origin
  2. Confirm attacker control
  3. Check mitigations and allowlists
  4. Confirm reachable attack path

5) Report high-confidence findings only

Skip speculative findings.

Severity Guide

SeverityTypical impact
Criticaldirect severe exploit, often no-auth (RCE/auth bypass/secrets exposure)
Highsignificant exploit with conditions (stored XSS, SSRF to metadata, sensitive IDOR)
Mediumconstrained exploitability (reflected XSS, CSRF state change, path traversal)
Lowdefense-in-depth gaps

Pattern Reference

Always flag (critical)

eval(user_input)
exec(user_input)
pickle.loads(user_data)
yaml.load(user_data)   # unsafe loader
unserialize(user_data)
deserialize(user_data)
shell=True + user_input
child_process.exec(user)

Always flag (high)

innerHTML = userInput
dangerouslySetInnerHTML={user}
v-html="userInput"
string-interpolated SQL with user input
os.system(f"cmd {user_input}")

Always flag (secrets)

hardcoded passwords/api keys/private keys/cloud secrets

Must investigate context first

requests.get(user_url)          # SSRF candidate
open(user_path)                 # path traversal candidate
redirect(user_next)             # open redirect candidate
md5/random for security purpose # weak crypto/randomness candidate

Use-case matters (e.g., md5 for checksums may be acceptable).

Output Format

## Security Review: [File/Component]

### Summary
- Findings: X (Critical Y, High Z, ...)
- Risk Level: Critical/High/Medium/Low
- Confidence: High/Mixed

### Findings
#### [VULN-001] [Type] (Severity)
- Location: `file.py:123`
- Confidence: High
- Issue: ...
- Impact: ...
- Evidence:
  ```python
  ...
  • Fix: ...

Needs Verification

[VERIFY-001] [Potential issue]

  • Location: file.py:456
  • Question: ...

If none: `No high-confidence vulnerabilities identified.`

## Reference Index

### Core (`references/`)
- `injection.md`, `xss.md`, `authorization.md`, `authentication.md`, `cryptography.md`
- `deserialization.md`, `file-security.md`, `ssrf.md`, `csrf.md`, `data-protection.md`
- `api-security.md`, `business-logic.md`, `modern-threats.md`, `misconfiguration.md`
- `error-handling.md`, `supply-chain.md`, `logging.md`

### Language (`languages/`)
- `python.md`, `javascript.md`, `go.md`, `rust.md`, `java.md`

### Infrastructure (`infrastructure/`)
- `docker.md`, `kubernetes.md`, `terraform.md`, `ci-cd.md`, `cloud.md`

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

86/100Analyzed 2/24/2026

Well-structured security review skill with comprehensive methodology, clear confidence policy, and actionable 5-step process. Includes pattern references, severity guidance, and output format. Highly reusable across languages and frameworks. Minor gaps: relies on external reference files that may not exist, some security terminology undefined. Strong safety focus on high-confidence findings only.

95
90
92
82
78

Metadata

Licenseunknown
Version-
Updated2/20/2026
PublisherderKlinke

Tags

apici-cddatabasegithub-actionsobservabilitysecurity