vuln-audit
Skill1 starsChanged 54 days agoMITView on GitHub
Audit application code for the OWASP Top 10 classes: injection (SQL/NoSQL/command), XSS, CSRF, SSRF, IDOR and broken access control, insecure deserialization, unsafe file upload, and misconfiguration. Use for any security review, "is this safe?", or code that handles untrusted input, queries, uploads, outbound URLs, or objects by ID. Produces a severity-ranked report with concrete fixes and proof. Defensive only.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- Cristallin2006/ghidra-skill-for-dshtheir own version, first seen Sep 25, 2026
- AL-JANEF/janefskillsword for word, first seen Sep 19, 2026
Other versions2 projects use a version of this.
Word for word · 1
- AL-JANEF/janefskills★ 1100% same
Edited · 0
None found.
Wrote their own version · 1
- Cristallin2006/ghidra-skill-for-dsh★ 11same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository25 other files it gives its agents.
- janefSkill
- forgeSkill
- accessibility-qualitySkill
- api-contractsSkill
- architecture-integritySkill
- context-efficiencySkill
- database-integritySkill
- delegation-disciplineSkill
- devops-reliabilitySkill
- documentation-integritySkill
- frontend-design-qualitySkill
- git-disciplineSkill
- implementation-qualitySkill
- performance-scalabilitySkill
- review-defect-firstSkill
- root-cause-debuggingSkill
- testing-verificationSkill
- ui-ux-qualitySkill
- auth-hardeningSkill
- secrets-guardSkill
- security-auditSkill
- security-loggingSkill
- skill-security-auditSkill
- threat-modelSkill
- variant-huntSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 26
Use it for any explicit security review ("audit this," "find vulnerabilities," "is this safe to ship?") and proactively whenever code …
- Distinctive: line 122
Don't include a working exploit — describing the impact ("an attacker can read other users' orders") is enough to justify the fix without …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Vulnerability Audit
Most application vulnerabilities are a handful of recurring shapes. This skill teaches Claude to recognize those shapes in real code, explain why each is dangerous, and fix it — producing a severity-ranked report rather than a vague "looks fine."
The through-line: all input is hostile until validated on the server, and all output must be encoded for the context it lands in. Nearly every bug below is a violation of one of those two rules.
When to reach for this skill
Use it for any explicit security review ("audit this," "find vulnerabilities," "is this safe to ship?") and proactively whenever code handles untrusted input: building database queries, rendering user content, accepting file uploads, making outbound requests from user-supplied URLs, or exposing objects by ID. You don't need the word "vulnerability" — working in these areas is the trigger.
The audit, by vulnerability class
Work through the classes relevant to the code in front of you. For each, the
pattern to hunt and the fix are given. Deeper, copyable remediation for each lives
in references/remediation.md — read it when implementing a fix.
Injection (SQL / NoSQL / command)
Hunt for: user input concatenated into a query or shell command as a string.
`SELECT * FROM users WHERE id = ${req.params.id}` // vulnerableFix: parameterized queries / prepared statements always. With an ORM (Prisma,
etc.), use its query builder, never raw string interpolation. For OS commands,
avoid the shell entirely — use argument arrays, never build a command string from
input. NoSQL is not immune: object injection ({ $gt: '' }) bypasses auth if
input isn't type-checked.
Cross-site scripting (XSS)
Hunt for: user-controlled data written into HTML without encoding —
innerHTML = userInput, dangerouslySetInnerHTML, template output with escaping
disabled. Fix: encode output for its context (HTML, attribute, JS, URL). Prefer
frameworks' auto-escaping; never disable it for user data. Add a Content-Security
-Policy header as defense in depth. Sanitize rich HTML with a vetted library
(DOMPurify), not a hand-rolled regex.
Broken access control / IDOR
Hunt for: an endpoint that reads an object by ID from the request but never
checks the caller owns it — GET /orders/:id returning any order. This is the
most common serious bug in real apps and the easiest to miss because the code
"works." Fix: every object access verifies ownership/authorization server-side.
In multi-tenant systems, scope every query to the tenant; a missing tenant filter
leaks data across customers. Never rely on the UI hiding a button — the endpoint
must enforce.
Cross-site request forgery (CSRF)
Hunt for: state-changing endpoints (POST/PUT/DELETE) authenticated only by a
cookie, with no anti-CSRF token. Fix: SameSite=Lax/Strict cookies plus a CSRF
token for sensitive actions, or a header-based token pattern for APIs. Pure
bearer-token APIs (no cookies) are generally not CSRF-prone — note the
distinction rather than adding ceremony where it isn't needed.
Server-side request forgery (SSRF)
Hunt for: the server fetching a URL supplied by the user (webhooks, "import from
URL," image proxies). An attacker points it at internal addresses
(169.254.169.254, localhost, internal services). Fix: allowlist destinations,
block private/link-local IP ranges after DNS resolution, and disable redirects to
internal hosts.
Unsafe file upload
Hunt for: accepting uploads by extension/MIME alone, storing them in a web-served path, or trusting the filename. Fix: validate content type by inspection, generate server-side filenames, store outside the web root or in object storage, and cap size. Never execute or include uploaded files.
Insecure deserialization & misconfiguration
Hunt for: deserializing untrusted data into objects, debug mode on in
production, verbose errors leaking stack traces, default credentials, permissive
CORS (Access-Control-Allow-Origin: * with credentials), missing security
headers. Fix: don't deserialize untrusted input into live objects; disable debug
and stack traces in prod; set restrictive CORS and security headers; change
defaults.
Output format
Produce a severity-ranked report so it's scannable and actionable:
## Vulnerability Audit: <target>
### Critical (exploitable now)
- [class] <location> — <what an attacker can do> → <fix>
### High
- ...
### Medium / Hardening
- ...
### Verified good
- <controls already correctly in place — name them>Name the vulnerability class, the location, the concrete impact, and the fix. Don't include a working exploit — describing the impact ("an attacker can read other users' orders") is enough to justify the fix without handing over an attack.
Proof before done
A fix isn't finished until demonstrated. For an IDOR fix, show that a request for another user's object now returns 403/404. For an injection fix, show the parameterized query rejects the malicious input harmlessly. Prefer a real test over assertion; if the stack has a test runner, write the test.
References
references/remediation.md— Copyable before/after fixes for each vulnerability class. Read it when implementing a remediation rather than reconstructing the pattern from memory.references/owasp-map.md— Maps each class here to its OWASP Top 10 category, for users who need to report findings in OWASP terms.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

