agentsclimarketplace

Security audit

Skill SWEStash/swe-workflow-skills/skills/security-audit

Comprehensive security analysis — OWASP Top 10, auth/authz flows, injection vulnerabilities, data exposure, secrets detection, dependency CVEs, hardening recommendations. Reviews EXISTING code/config — design-time analysis of a system not yet built → threat-modeling.From its SKILL.md

Install
npx -y skills add SWEStash/swe-workflow-skills --skill security-audit

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

7.7 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it

Security Audit

Perform a structured security assessment of an application. This skill goes far deeper than the security checklist in code-reviewing — it's a dedicated, systematic analysis covering the OWASP Top 10 and beyond.

Scope Boundary

This skill analyzes code, configuration, and architecture for security vulnerabilities through static analysis and design review. It does not replace penetration testing, but it prepares code for one by catching the issues a pentester would find. It is the reactive half of the pair: for design-time analysis of a system that isn't built yet (trust boundaries, STRIDE, abuse cases), use threat-modeling — and when a threat model exists, use it as this audit's checklist.

⛔ The Iron Law

"No obvious problems" is not a pass.

Absence of evidence is not evidence of security. Every clearance is backed by evidence — the specific control you read and where it's enforced — and every finding cites the exact code path plus a concrete exploit scenario. If you can't write the exploit, you haven't assessed the risk; if you can, it isn't theoretical.

Workflow

Step 1: Define the Attack Surface

Before reviewing code line by line, map what's exposed:

  • Entry points: HTTP endpoints, WebSocket connections, GraphQL resolvers, CLI inputs, file uploads, webhooks, cron jobs
  • Authentication boundaries: What's public vs authenticated vs admin-only?
  • Data flows: Where does sensitive data enter, travel, and get stored?
  • External integrations: Third-party APIs, OAuth providers, payment processors
  • Infrastructure: Cloud services, databases, caches, queues

Record the attack surface map as the first section of the report — gaps in understanding here mean gaps in the audit, so anything you could not map (unreachable config, undocumented integrations) goes under Open questions rather than being assumed safe.

Step 2: Assess by OWASP Top 10

Walk through each category systematically. See references/owasp-top-10.md for the detailed checklist.

For each finding:

  • Severity: Critical / High / Medium / Low
  • Location: File, line, endpoint
  • Vulnerability: What the issue is
  • Exploit scenario: How an attacker would use this (concrete, not theoretical)
  • Remediation: Specific code change or configuration fix

Step 3: Authentication & Authorization Deep Dive

Auth is where the highest-impact vulnerabilities live. Review:

Authentication:

  • How are credentials stored? (bcrypt/argon2 with sufficient rounds, never MD5/SHA)
  • Session management: secure flags, httpOnly, sameSite, expiration
  • Token handling: JWT validation (algorithm, expiry, issuer), refresh token rotation
  • Password policy: minimum complexity, breached password checking
  • MFA implementation (if present): bypass resistance, recovery flow security
  • Rate limiting on login: brute force protection

Authorization:

  • Is authorization checked on every protected endpoint (not just the UI)?
  • Are there IDOR vulnerabilities? (Can user A access user B's resources by changing an ID?)
  • Is the authorization model consistent? (role-based, attribute-based, or ad-hoc?)
  • Are there privilege escalation paths? (Can a regular user reach admin functionality?)
  • Are API endpoints and UI permissions in sync?

Step 4: Data Security Review

  • At rest: Is sensitive data encrypted in the database? (PII, payment data, health data)
  • In transit: Is TLS enforced everywhere? Any HTTP-only endpoints?
  • In logs: Are passwords, tokens, SSNs, or credit card numbers logged?
  • In errors: Do error messages leak internal details (stack traces, SQL queries, file paths)?
  • In responses: Do API responses include fields the client shouldn't see?
  • Retention: Is data deleted when it should be? GDPR/CCPA compliance?

Step 5: Dependency Audit

Run dependency vulnerability scanners and review results:

# JavaScript/TypeScript
npm audit
npx better-npm-audit audit

# Python
pip audit
safety check

# Go
govulncheck ./...

# Ruby
bundle audit check --update

For each vulnerability found:

  • What is the CVE and its severity?
  • Is the vulnerable code path actually used in this project?
  • Is there a patched version available?
  • If no patch exists, what's the mitigation?

Suggest using the dependency-management skill for remediation planning.

Step 6: Secrets and Configuration

  • Scan for hardcoded secrets: API keys, passwords, tokens, private keys
  • Check .gitignore covers sensitive files (.env, key files, certificates)
  • Review git history for accidentally committed secrets: git log --all -p | grep -i "password\|secret\|api_key\|token"
  • Verify environment variable usage for all secrets
  • Check that different environments use different credentials

Step 7: Produce the Report

Output the audit report using the template at templates/security-report.md. Organize findings by severity, with Critical and High items first.

Write the full report to a file (default a gitignored location, e.g. .local/security-audit-<date>.md) and state its path in your final summary — this skill runs in a forked context: only the summary returns, everything unwritten is lost. The summary must lead with the Critical/High count. Judgment calls that need user input (unclear trust boundary, whether a data store is in scope, unverifiable control) go in an Open questions section of the report — never silently assumed safe.

What This Skill Does NOT Cover

  • Runtime penetration testing (requires running the application)
  • Network-level security (firewall rules, VPN configuration)
  • Physical security or social engineering
  • Compliance certification (SOC 2, HIPAA, PCI DSS — though findings may relate)

Principles Applied

  • Defense in depth: Don't rely on a single security control. Layer protections.
  • Least privilege: Every component should have the minimum permissions it needs.
  • Fail secure: When something goes wrong, it should deny access, not grant it.
  • KISS: Simpler security is more auditable security. Complex auth flows breed bugs.

Rationalizations to reject

ExcuseReality
"I didn't see anything obviously wrong"You audited the absence of obvious bugs, not the presence of security. Trace each control.
"The framework handles that"Verify the control is actually enabled and configured correctly — don't assume.
"Auth is checked in the UI"UI checks are not authorization. Confirm server-side enforcement on every protected endpoint.
"This input is internal/trusted"Trust boundaries shift. Validate anyway — defense in depth.
"That CVE doesn't apply to us"Confirm the vulnerable code path is unused before dismissing it.
"It's only a theoretical risk"If you can't write the exploit scenario, you haven't assessed it.

Red flags — stop and correct course

  • Signing off a category without naming the file/endpoint you verified.
  • A finding with no concrete exploit path.
  • Concluding "secure" because nothing jumped out.
  • Trusting that a control exists without reading where it's enforced.

What ships with it: 3 files

12.9 KB alongside SKILL.md

evals/

references/

templates/

Gives 1 of the 12 instructions most audit compliance skills give in ~1.6k tokens

Counted across 937 of the 1,487 authors here whose files we hold, read 2026-08-07

  • Fetch latest guidelines before each reviewin 43 of 937, across 3 files
  • Group findings by severityin 43 of 937
  • Check files against all fetched rulesin 42 of 937, across 2 files
  • Output findings in terse file:line formatin 41 of 937, across 3 files
  • Ask user which files to review if none specifiedin 41 of 937, across 3 files
  • Read specified files or prompt user for filesin 39 of 937, across 1 file
  • Generate the audit reportin 33 of 937, across 30 files
  • Assign a severity to every findinghere, and in 25 of 937
  • Run automated accessibility scansin 23 of 937, across 13 files
  • Output a markdown audit reportin 22 of 937
  • Map findings to WCAG criteriain 20 of 937, across 10 files
  • Confirm audit scopein 19 of 937, across 9 files

Said here and by no other author read

  • document unmappable components under open questions
  • assess the codebase against the owasp top 10
  • check for sensitive data in logs and error responses
  • lead the final summary with critical and high counts

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 326,835. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.