skills/security-audit/SKILL.md
Identify security vulnerabilities across dependencies, auth, input validation, data protection, secrets, and infrastructure
npx skillsauth add stevefeldman/agents-skills security-auditInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Identify security vulnerabilities in the codebase. This skill finds problems; for remediation, use the /security-hardening skill.
Perform a systematic security audit following these steps:
Automated Dependency Scan Run the appropriate audit command for the detected ecosystem as the first step:
npm audit or yarn auditpip-audit or safety checkgovulncheck ./...cargo auditbundle audit checkmvn dependency-check:check or gradle dependencyCheckAnalyzeRecord all findings with their CVE IDs before proceeding.
Environment and Stack Assessment
Authentication and Authorization
Input Validation and Injection
Data Protection
Secrets Management
.env files, config files, and CI/CD variables for exposed secrets.gitignore for proper exclusion of sensitive filesError Handling and Logging
Infrastructure Security
Security Headers and CORS
Strict-Transport-Security, X-Content-Type-Options, X-Frame-Options, Referrer-PolicySecure, HttpOnly, SameSiteReport Findings Document all findings using the severity format below. Include specific file paths and line numbers.
Rate each finding using CVSS-aligned severity:
### [CRITICAL] Hardcoded database password in source code
**File:** `src/config/database.ts:14`
**CWE:** CWE-798 (Use of Hard-coded Credentials)
**Description:** Production database password is committed in plaintext.
**Impact:** Full database access if source code is exposed.
**Remediation:** Move to environment variable or secrets manager.
### [HIGH] SQL injection in user search endpoint
**File:** `src/routes/users.ts:67`
**CWE:** CWE-89 (SQL Injection)
**Description:** User-supplied `query` parameter is concatenated directly into SQL string.
**Impact:** Attacker can read, modify, or delete arbitrary database records.
**Remediation:** Use parameterized queries or ORM query builder.
### [MEDIUM] Missing rate limiting on login endpoint
**File:** `src/routes/auth.ts:23`
**CWE:** CWE-307 (Improper Restriction of Excessive Authentication Attempts)
**Description:** No rate limiting or account lockout on `/api/login`.
**Impact:** Enables brute-force password attacks.
**Remediation:** Add rate limiting middleware (e.g., express-rate-limit).
### [LOW] Verbose error messages in production
**File:** `src/middleware/error-handler.ts:8`
**CWE:** CWE-209 (Information Exposure Through Error Messages)
**Description:** Stack traces are returned in API error responses when NODE_ENV is not set.
**Impact:** Leaks internal file paths and dependency versions.
**Remediation:** Default to production mode; return generic error messages.
Severity levels:
For fixing the vulnerabilities found in this audit, use the /security-hardening skill to generate remediation steps and hardened code.
development
Use when reviewing Dependabot alerts, npm audit findings, govulncheck output, or CVE reports on a JavaScript/Node.js or Go project — especially when triaging multiple alerts across direct and transitive dependencies to assess real-world risk and produce a remediation plan.
development
Use when a code review finding needs proof — write a focused test in JavaScript or Go that either confirms the issue is real or exposes it as over-engineering hyperbole. Trigger after code-review or code-review-skill findings are presented and evidence is requested.
development
Produce data-driven software delivery estimates by analyzing historical JIRA tickets, git activity, and engineer track records, then matching the new work against the most similar past tickets. Use this skill whenever the user asks "how long will this take", wants to estimate a piece of work, scope an epic, plan a sprint, or estimate delivery for JIRA stories or a Figma design. Also use whenever the user wants developer-to-work assignment recommendations based on history, wants to optimize an estimate by adding or reallocating engineers, or asks "what's the fastest way to ship this" or "who should work on this". Especially trigger when the user provides JIRA ticket IDs, JIRA story links, or Figma designs together with any indication of a team that will execute the work.
tools
Use when auditing an existing test suite for quality and coverage gaps, evaluating Playwright migration readiness, scoring automation against a world-class e-commerce standard, or guiding the creation of new tests. Applicable to Selenium, WebdriverIO, and Playwright suites.