dependency-audit
Skill0 starsChanged 2 months agoMITView on GitHub
Audit project dependencies, frameworks, languages, and dev tools for known vulnerabilities, CVEs, and security anti-patterns. Use when the user mentions 'dependency audit,' 'npm audit,' 'CVE,' 'vulnerable packages,' 'supply chain security,' 'outdated dependencies,' 'known vulnerabilities,' 'security advisory,' 'package security,' 'framework vulnerability,' 'is this package safe,' or needs to check whether their stack has known security issues.
- Reads credentials
- Installs packages
42 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- petr-korobeinikov/skillstheir own version, first seen Nov 8, 2026
- ymd38/dev-skillstheir own version, first seen Nov 8, 2026
- northraystudio/marudatheir own version, first seen Nov 8, 2026
- Smaui94/ClaudeSkillCollectiontheir own version, first seen Nov 8, 2026
- nisarth/claude-skills-storetheir own version, first seen Nov 8, 2026
- amkisko/prayerstheir own version, first seen Nov 6, 2026
Used with
Projects with it also use performance-profiling, threat-model and 8 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
conorluddySkillperformance-profiling
Instruments integration and performance analysis workflows for iOS apps. Use when profiling CPU usage, memory allocation, network activity, or energy consumption. Covers Time Profiler, Allocations, Leaks, Network instruments, and performance optimization strategies.
Also in 3 projects that use this
OpenAISkillthreat-model
Use when Codex is already in the threat-modeling phase of a security scan, the user explicitly invokes $threat-model, or the user explicitly asks to create, update, or persist a repository threat model. Do not use as the primary trigger for full PR, commit, branch, patch, or repository scans.
Also in 4 projects that use this
renfei-designSkilla11y-audit
Audit Figma designs for WCAG accessibility issues — color contrast, minimum font size, touch target sizing, and missing text alternatives. Use when asked to check accessibility, audit contrast ratios, find a11y issues, verify WCAG compliance, or review designs for accessibility problems. Scans nodes, analyzes offline, and annotates issues in Figma.
Also in 3 projects that use this
OpenAISkillsecurity-scan
Use for a standard, single-pass security audit of an entire repository or a scoped path, package, folder, or submodule with no diff to review. This is the default repository scan. Do not use for PR, commit, branch, or working-tree diffs, or for deep, multi-pass scans.
Also in 4 projects that use this
GitHubSkillaccessibility-audit
Audits actual components and routes against applicable WCAG 2.2 A/AA criteria using consumer-owned design-system evidence and repository tools. Use when asked for an accessibility audit, a11y check, keyboard or focus review, contrast check, or screen-reader verification.
Also in 3 projects that use this
pproencaSkillrefactoring
Code refactoring best practices based on Martin Fowler's catalog and Clean Code principles. This skill should be used when refactoring existing code, improving code structure, reducing complexity, eliminating code smells, or reviewing code for maintainability. Triggers on tasks involving extract method, rename, decompose conditional, reduce coupling, or improve readability.
Also in 3 projects that use this
Other versions42 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- briiirussell/cybersecurity-skills★ 48949% same
Wrote their own version · 41
- web-infra-dev/modern.js★ 5ksame name
- Mathews-Tom/armory★ 340same name
- PerryLink/dsh-skill-pack-security★ 22same name
- Indium-AI-Labs/indium-agentkit★ 18same name
- Ionate-Technologies/indium-agentkit★ 17same name
- Quality-Max/free-qa-skills★ 13same name
- jnotsknab/mux-swarm★ 9same name
- greglas75/zuvo★ 7same name
- northraystudio/maruda★ 7same name
- viknesh20-20/claude-code-tool-kit★ 7same name
31 more not listed
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 repository30 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- cybersecurity-skillsSkill
- ai-risk-managementSkill
- api-auditSkill
- breach-patternsSkill
- cloud-auditSkill
- container-auditSkill
- crypto-auditSkill
- csf-mappingSkill
- disk-forensicsSkill
- finding-triageSkill
- hipaa-auditSkill
- iam-auditSkill
- incident-triageSkill
- mobile-auditSkill
- osint-reconSkill
- owasp-auditSkill
- pci-auditSkill
- privacy-engineeringSkill
- prompt-injectionSkill
- reconSkill
- red-team-engagementSkill
- secrets-auditSkill
- security-commsSkill
- siem-detectionSkill
- soc-operationsSkill
- threat-huntingSkill
- threat-modelingSkill
- vuln-researchSkill
- web-pentestSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. 0 are common, 10 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 39 edited versions we read keep these.
10
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 30
Check framework version (Next.js, Django, Rails, Spring, Laravel, Express, etc.)
- Very specific: line 31
Check language/runtime version (Node.js, Python, Ruby, Go, Java, PHP, .NET)
- Distinctive: line 32
Check infrastructure tools (Docker base images, Terraform providers, Kubernetes versions)
- Very specific: line 35
Check CI/CD pipeline configs (.github/workflows, .gitlab-ci.yml, Jenkinsfile)
- Distinctive: line 36
Check pre-commit hooks, linters, formatters
- Distinctive: line 37
Check container base images and their update status
- Distinctive: line 38
Check IaC tool versions (Terraform, Pulumi, CDK)
- Distinctive: line 49
Run the appropriate audit command for the project:
- Distinctive: line 100
If none apply: document explicitly, track upstream, and note in the audit report rather than silently dropping the finding.
- Very specific: line 152
x-forwarded-fortrust: only trustworthy when the edge overwrites it. - Distinctive: line 172
Default admin username, weak passwords
- Distinctive: line 182
No lockfile integrity verification
- Very specific: line 202
Check .github/workflows/*.yml, .gitlab-ci.yml, Jenkinsfile, vercel.json, netlify.toml, Dockerfile
- Distinctive: line 268
Only audit code and configurations the user provides
- Distinctive: line 269
When identifying CVEs, verify they apply to the actual installed version
“Common” is measured: kept by at least 6 in 10 of the 39 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Dependency Audit — Framework, Package, and Toolchain Security
Audit project dependencies, frameworks, language runtimes, and dev tools for known vulnerabilities (CVEs), security anti-patterns, and supply chain risks.
Methodology
Step 1: Inventory the Stack
Identify everything in use — not just direct dependencies but the full chain:
Package manifests — read and catalog:
Node/JS: package.json, package-lock.json, yarn.lock, pnpm-lock.yaml
Python: requirements.txt, Pipfile.lock, pyproject.toml, poetry.lock
Ruby: Gemfile, Gemfile.lock
Go: go.mod, go.sum
Rust: Cargo.toml, Cargo.lock
Java: pom.xml, build.gradle
PHP: composer.json, composer.lock
.NET: *.csproj, packages.configFramework and runtime versions:
- Check framework version (Next.js, Django, Rails, Spring, Laravel, Express, etc.)
- Check language/runtime version (Node.js, Python, Ruby, Go, Java, PHP, .NET)
- Check infrastructure tools (Docker base images, Terraform providers, Kubernetes versions)
Dev tools and CI/CD:
- Check CI/CD pipeline configs (.github/workflows, .gitlab-ci.yml, Jenkinsfile)
- Check pre-commit hooks, linters, formatters
- Check container base images and their update status
- Check IaC tool versions (Terraform, Pulumi, CDK)
Edge cases in package manifests:
optionalDependencies— installed but not audited by defaultpeerDependencies— version range may not match what's installedoverrides/ yarnresolutions/ pnpmoverrides— check if used to silence advisories rather than fix them- Monorepos: read every
packages/*/package.jsonandapps/*/package.json, not just the root enginesfield — older-than-LTS Node makes other audits moot
Step 2: Run Automated Audit Tools
Run the appropriate audit command for the project:
# Node.js
npm audit --json # full structured output
npm audit --omit=dev --json # production-only: filters dev/build-time vulns
# Compare the two — vulns only in dev/build tooling do not ship to users
# and should be triaged as lower priority. Don't bury this in the report.
# Python
pip audit # If pip-audit installed
safety check # If safety installed
# Ruby
bundle audit
# Go
govulncheck ./...
# Rust
cargo audit
# PHP
composer audit
# .NET
dotnet list package --vulnerable
# Docker
docker scout cves <image>
trivy image <image>
# General (if Trivy is available)
trivy fs .Applying fixes — read before you --force:
npm audit fix # safe: upgrades within stated ranges
npm audit fix --dry-run --force # ALWAYS dry-run first
npm audit fix --force # only after reviewing the dry-runnpm audit fix --force can resolve an advisory by DOWNGRADING a package to an older version that doesn't trigger the audit signature. This is almost always wrong (e.g. downgrading next@16 to next@9 to "fix" a transitive postcss CVE). Inspect dry-run output for "Will install X@Y, which is a breaking change" — that's the tool trying to downgrade.
When npm audit fix cannot resolve an advisory (transitive dep pinned by an upstream package):
- Determine reachability — is the vulnerable code path actually invoked in your usage?
npm ls <package>+ reading the parent's source can rule it out as unreachable. - Consider a
package.jsonoverridespin to a patched version (test thoroughly — overrides can break the parent). - Consider swapping the parent provider entirely.
- If none apply: document explicitly, track upstream, and note in the audit report rather than silently dropping the finding.
Step 3: Research Framework-Specific Known Issues
Beyond CVEs in packages, check for known vulnerability patterns specific to the framework in use. Search for recent advisories and common misconfiguration issues.
For every direct dependency, cross-reference the installed version against:
https://github.com/advisories?ecosystem=npm&query=<package>https://github.com/<org>/<repo>/security/advisories
The framework-specific patterns below cover evergreen anti-patterns (mass assignment, debug-in-prod, etc.). Recent CVEs need a fresh check because hardcoded advisory lists rot fast and LLM training data is often 6+ months behind the latest.
Next.js / React:
- Server Actions exposing internal endpoints (pre-14.1.1 middleware bypass CVE-2025-29927)
dangerouslySetInnerHTMLwithout sanitization- SSRF through image optimization (
next/imagewith unrestricted domains) - Exposed
.envfiles in public directory or client bundle (NEXT_PUBLIC_prefix leaking secrets) - Middleware auth bypass patterns — check middleware.ts matches all protected routes
- Server Component / Client Component boundary leaking server-only data:
- Any module reading
process.env.SECRETor instantiating a DB client should start withimport "server-only";— fails the build if imported from a Client Component - Grep for: files in
lib/that touchprocess.env.[A-Z_]+but do NOT importserver-only - Inverse check: any file with
"use client"importing from such a module is a leak
- Any module reading
- Outdated
next.config.jssecurity headers
Django:
- DEBUG=True in production
- ALLOWED_HOSTS misconfigured (wildcard
*) - Missing CSRF middleware or
@csrf_exempton state-changing views - Raw SQL via
extra(),raw(), orRawSQLwithout parameterization - Pickle deserialization in sessions (use JSON serializer)
- Secret key committed to source control
Rails:
- Mass assignment without strong parameters
- SQL injection via
where("column = '#{input}'") - Unpatched Action Pack, Action View, or Active Record CVEs
- Insecure deserialization in cookies (verify secret_key_base rotation)
- CSRF token bypass in API-only mode
Express / Node.js:
- Prototype pollution through
Object.assign,lodash.merge,deep-extend - ReDoS (Regular Expression Denial of Service) in validation patterns
- Path traversal through
req.paramsin file serving routes - Missing rate limiting on auth endpoints
eval()orFunction()with user input- Event loop blocking with synchronous operations
Serverless / edge runtimes (Vercel, Lambda, Cloud Run, Workers):
- In-memory state ≠ rate limit. A module-scoped
MaporSetfor rate limiting, sessions, or caches is per-instance. Cold starts reset state; load spreads across instances; attackers bypass trivially.- Grep for:
const rateLimitMap = new Map,const cache = new Mapin server-action / API-route files - Fix: shared store — Vercel KV, Upstash Ratelimit, Redis, DynamoDB
- Grep for:
- Unbounded in-memory collections leak memory under traffic. Cap size and evict (LRU or FIFO).
x-forwarded-fortrust: only trustworthy when the edge overwrites it. Behind misconfigured proxy chains it's attacker-spoofable. A fallback to a single"unknown"bucket throttles all anonymous traffic together; random-fallback silently disables the limit.
Spring / Java:
- Spring4Shell and related RCE vulnerabilities
- Deserialization attacks (Java native serialization, Jackson polymorphic types)
- SpEL injection in Spring Expression Language
- Missing CSRF protection on state-changing endpoints
- Actuator endpoints exposed without authentication
Laravel / PHP:
- APP_DEBUG=true in production (leaks env vars in error pages)
- SQL injection via raw DB queries without bindings
- Mass assignment without
$fillable/$guarded - File upload without type validation (PHP execution via uploaded .php)
- Insecure deserialization in queued jobs
WordPress:
- Outdated core, theme, or plugin versions (most common attack vector)
- File editor enabled in wp-admin (allows code injection if admin is compromised)
- XML-RPC enabled (brute force amplification, SSRF)
- Default admin username, weak passwords
- Unpatched plugin vulnerabilities (check WPScan database)
Step 4: Check for Supply Chain Risks
Beyond known CVEs, look for supply chain attack indicators:
Dependency confusion / substitution:
- Private package names that could be claimed on public registries
- Missing
.npmrcorpip.confscoping to private registry - No lockfile integrity verification
Typosquatting:
- Package names that are close misspellings of popular packages
- Recently published packages with very few downloads
- Packages that changed ownership recently
Malicious packages:
- Postinstall scripts that make network requests or execute code (
scripts.postinstallin package.json) - Packages with obfuscated code
- Excessive permission requests relative to functionality
Maintenance risk:
- Unmaintained packages (no commits in 2+ years, archived repos)
- Single-maintainer packages for critical functionality
- Packages with known but unpatched vulnerabilities (maintainer unresponsive)
Lockfile integrity:
- Lockfile committed?
git ls-files | grep -E 'package-lock\.json|yarn\.lock|pnpm-lock\.yaml|Gemfile\.lock|poetry\.lock|composer\.lock|Cargo\.lock|go\.sum' - CI installs from lockfile?
- Check
.github/workflows/*.yml,.gitlab-ci.yml,Jenkinsfile,vercel.json,netlify.toml,Dockerfile npm install(bad) vsnpm ci(good);yarn install(bad) vsyarn install --immutable(good);pip install -r(bad) vspip install --require-hashes -r(good)
- Check
integrityhashes present in the lockfile? (modern npm/pnpm yes by default)
Step 5: Check Dev Tool and CI/CD Security
GitHub Actions:
pull_request_targettrigger with checkout of PR code (code injection risk)- Secrets accessible in forked PR workflows
- Unpinned action versions (
uses: actions/checkout@mainvs@v4.1.0or SHA pin) - Script injection via
${{ github.event.issue.title }}inrun:blocks
Docker:
- Running as root in container (missing
USERdirective) - Base image with known CVEs (check with
trivyordocker scout) - Secrets baked into image layers (visible via
docker history) latesttag instead of pinned version
Terraform / IaC:
- Hardcoded secrets in
.tffiles - Unpinned provider versions
- Missing state file encryption
- Over-permissive IAM in provider configuration
Output Format
# Dependency & Stack Security Audit
## Project: [name]
## Stack: [language, framework, key tools]
## Date: [date]
### Stack Inventory
| Component | Version | Latest | Status |
|-----------|---------|--------|--------|
### Known Vulnerabilities (CVEs)
| Package | Installed | Vuln | Severity | Where reachable | CVE | Fix Version |
|---------|-----------|------|----------|-----------------|-----|-------------|
Where reachable values: `runtime` / `build-only` / `dev-only`. Confirm with `npm ls --omit=dev <package>` or inspect the deployment artifact (Vercel function bundle, Docker layer). Build- and dev-only vulnerabilities should not block a release on their own; runtime-reachable ones should.
### Framework-Specific Issues
#### [SEVERITY] [Title]
**Component:** [framework/tool name and version]
**Issue:** [description]
**Evidence:** [code or config snippet]
**Remediation:** [specific fix]
### Supply Chain Risks
| Risk | Package/Component | Details | Remediation |
|------|-------------------|---------|-------------|
### Dev Tool / CI Security
| Tool | Issue | Severity | Remediation |
|------|-------|----------|-------------|
### Prioritized Action Plan
1. [Critical — actively exploited CVEs, RCE vulnerabilities]
2. [High — known CVEs with public exploits, supply chain risks]
3. [Medium — framework misconfigurations, outdated dependencies]
4. [Low — maintenance risks, best practice improvements]Boundaries
- Only audit code and configurations the user provides
- When identifying CVEs, verify they apply to the actual installed version
- Provide specific fix versions or remediation steps for every finding
- Note when a vulnerability requires specific conditions to exploit (reducing effective severity)
- Refuse to help exploit found vulnerabilities against unauthorized targets
References
- OWASP Dependency-Check
- National Vulnerability Database (NVD)
- GitHub Advisory Database
- Snyk Vulnerability Database
- npm audit / pip-audit / bundler-audit documentation
- SLSA (Supply-chain Levels for Software Artifacts) framework
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.

