securityby hashgraph-online
Vuln Scan — Systematic Vulnerability Scanner
hashgraph-online/vuln-scan
Systematic vulnerability scanner across injection, auth, data exposure, and dependencies.
What it changes
Passed 15 of 22 test cases with the skill, and 9 of 22 without it.
Without skill41%
With skill68%
Checks it passed that the model alone missed
- Loads threat scenarios from THREAT_MODEL.md.
- Assigns MEDIUM severity to verbose error responses.
- Recommends running /triage after generating findings.
and 5 more in the full report
6 fixed9 passed either way7 still failing0 broke
- Pass-rate lift
- +27 pp
- Tokens
- +33%
- Agent turns
- 0%
- Response time
- -13%
Model gemini-3.6-flashMeasured 9/1/2026v115 of 22 cases passed with skill
See it in action
One of 6 test cases the skill fixed. Same model, same prompt, with and without the skill.
PromptOnce VULN-FINDINGS.json has been generated, what specific action or command should be suggested to the user next?
What was checked, without and with the skill| Checked | Without skill | With skill |
|---|
| Recommends running /triage after generating findings. | Missed | Passed |
|---|
What's inside
The instructions your model reads when the skill loads.
SKILL.md160 linessingle file
Vuln Scan — Systematic Vulnerability Scanner
Iron Law
Code you haven't scanned for vulnerabilities has vulnerabilities you haven't found.
Process
Step 0: Load Engagement Context
Check for .harness/engagement.md. If present, load scope constraints — only scan in-scope paths and respect exclusions.
Check for THREAT_MODEL.md from a previous /threat-model run. If present, use its threat scenarios as scan targets. If absent, run full-surface scan.
Step 1: Scope the Scan
# Gather changed files (for incremental scans)
git diff --name-only $(git merge-base HEAD main)
# Or scan entire codebase
find . -type f \( -name "*.rs" -o -name "*.ts" -o -name "*.js" -o -name "*.py" -o -name "*.go" \) \
| grep -v node_modules | grep -v target | grep -v vendor
Step 2: Run Scan Dimensions (Parallel)
Launch all dimensions concurrently:
Dimension 1: Injection Scan
Search patterns:
eval( exec( system(
string concat SQL format!.*query raw_query
innerHTML dangerouslySetInnerHTML
For each match:
- File, line number, surrounding context (5 lines)
Track record
Benchmark
15 / 22
test cases passed, vs 9 / 22 without
Adoption
- Users
- 0
- Times used
- 0
Safety and source details
SkillSafety
✓ 3 of 3 passed✓Code scan15 of 15 checks clean
0 critical · 0 warning · 0 info — scanner v4 — 8/10/2026
View 15 scanner checks
live_secretremote_code_executionreverse_shelldata_exfiltrationssrf_metadataagent_snoopinganti_refusaldestructive_commandsobfuscated_unicodeunicode_homoglyphopaque_blobsuspicious_urltool_overreachtrigger_abuseprompt_injection_phrasing
✓IntentSafe
LLM judge · does the skill do what it claims
✓ContentClean
LLM judge · policy & harmful-content review
Source
Importedhashgraph-online / awesome-codex-plugins
plugins/epicsagas/epic-harness/skills/vuln-scan/SKILL.md
View on GitHub ↗License Apache-2.0Imported 8/10/2026Version v1