Install
$ agentstack add skill-vanducng-skills-security ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
security
> STRIDE + OWASP, from multiple attacker perspectives → severity-ranked findings, optionally auto-fixed.
Scope & posture
Defensive / authorized use only. Run against code you own or are authorized to audit. This skill performs review and authorized remediation; it does not produce weaponized exploits, mass-targeting tooling, or detection-evasion for malicious use.
Credential masking is mandatory — even when the secret is the finding. Mask per the table in vd:optimize-loop's SKILL.md (API keys → `, connection strings → …:@…`, env values → reference the name). No report or PoC may contain a live secret or a copy-paste-ready exploit with real credentials — write PoCs as templates the user fills in.
What this is — and isn't
This is an LLM-driven threat-modeled review + bounded fix loop — not a replacement for a SAST scanner, dependency CVE database, or pentest engagement. Use it to reason about this codebase's threat surface and remediate findings; pair with real scanners for breadth.
Modes
| Mode | Behaviour | |---|---| | (default) | One-shot scan: STRIDE + OWASP pass over ` → severity-ranked findings report. | | --red-team | Iterative persona-driven discovery loop — see [references/red-team-personas.md](references/red-team-personas.md). | | --fix` | Remediate findings using the autoresearch loop (below). |
Workflow
- Scope — resolve `
glob (orfull` = whole repo). List the files/surfaces in play. - Threat pass — walk STRIDE × OWASP per [
references/stride-owasp.md](references/stride-owasp.md): for each category, grep/inspect the relevant sinks. If the scope calls an LLM, drives an agent, or builds a prompt from user/tool data, also run the LLM lens in [references/llm-owasp.md](references/llm-owasp.md). - Categorize — each finding: title, STRIDE category, OWASP ref, severity (Critical/High/Med/Low), location (
file:line), masked PoC, remediation. --red-team(optional) — run attacker personas iteratively; dedupe vs seen; stop on a dry round or--iterationscap (default 5). Bounded.--fix(optional) — see Fix loop.- Report — write to the injected
Reports:path. Filename:security-{date}-{slug}.md.
Final handoff must include an openable report location, such as [security-report.md](/absolute/path/to/security-report.md) or file:///absolute/path/to/security-report.md, not just the basename.
Fix loop (--fix)
Reuses the vd:optimize-loop discipline (see [../optimize-loop/references/loop-protocol.md](../optimize-loop/references/loop-protocol.md)) — do not duplicate it:
- One finding per iteration. Atomic change.
- Commit before verify (
loop(iter-N): fix). - Verify = the specific finding no longer reproduces (its detection check now passes).
- Guard = the project's test suite (do not regress behavior). Guard files are read-only.
- Keep if verify passes and guard holds; else
git revertand try a different remediation (max 2 reworks), then defer the finding to the report.
Output shape
### [Critical] SQL injection in users query — STRIDE: Tampering · OWASP: A03 Injection
- Location: src/db/users.ts:42
- PoC (masked): GET /users?id=1';DROP… (param reaches string-concatenated query)
- Remediation: use parameterized query / prepared statement.
- Fix status: applied (loop iter-3) | deferred
End with: Findings: C/H/M/L counts · personas run: N · fixes applied: K.
Limitations (honest)
- Reasoning-based — can miss what a dedicated SAST/CVE scanner catches; pair with those for breadth.
--red-teamand--fixare bounded by--iterations; logs when a cap truncates discovery.- Cannot assess runtime/infra config it can't see (secrets managers, WAF rules, network policy).
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: vanducng
- Source: vanducng/skills
- License: MIT
- Homepage: https://skills.vanducng.dev
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.