AgentStack
SKILL verified MIT Self-run

Security

skill-vanducng-skills-security · by vanducng

Threat-modeled security audit using STRIDE + OWASP (incl. the OWASP LLM Top-10 lens for AI/agent code), scanning code from multiple attacker perspectives, with optional red-team discovery loop and an autoresearch-style fix loop. Use for defensive security review, vulnerability discovery, threat modeling, prompt-injection / LLM security, and authorized remediation. Triggers: 'security audit', 'STR…

No reviews yet
0 installs
2 views
0.0% view→install

Install

$ agentstack add skill-vanducng-skills-security

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No 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.

Are you the author of Security? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

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

  1. Scope — resolve ` glob (or full` = whole repo). List the files/surfaces in play.
  2. 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).
  3. Categorize — each finding: title, STRIDE category, OWASP ref, severity (Critical/High/Med/Low), location (file:line), masked PoC, remediation.
  4. --red-team (optional) — run attacker personas iteratively; dedupe vs seen; stop on a dry round or --iterations cap (default 5). Bounded.
  5. --fix (optional) — see Fix loop.
  6. 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 revert and 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-team and --fix are 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.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.