agentleFS
XavierErXavierEr/appsec-agent-skills/skills/dependency-audit/SKILL.md

dependency-audit

Skill4 starsChanged 7 months agoMITView on GitHub

Scan dependency manifests for known CVEs across multiple programming ecosystems

  • Installs packages

44 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use api-audit, container-audit and 9 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.
  • gmanch94Skill

    api-audit

    Guides a structured API portfolio audit — from discovery through primary-source-verified inventory, shortcomings analysis, prioritized recommendations, executive summary, and options analysis. Enforces primary-source discipline, cross-file consistency, and advisor review gates. Use when auditing an API portfolio, evaluating a vendor's developer ecosystem, or producing defensible technical analysis of an API set.

    Also in 3 projects that use this

  • grichaSkill

    container-audit

    Audit local Docker images and running containers for hardening issues before deploy — privileged flags, root users, stale base images, missing resource limits. Use for pre-deploy container review.

    Also in 3 projects that use this

  • conorluddySkill

    performance-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

  • OpenAISkill

    threat-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-designSkill

    a11y-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

  • OpenAISkill

    security-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

The file

We split this skill into the rules it gives an agent

8 rules. 0 are common, 6 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 40 edited versions we read keep these.

  • 6

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use glob patterns to find these files.

    line 37
  2. Distinctive:

    Use the Bash tool to run the appropriate ecosystem-specific audit tool.

    line 60
  3. Distinctive:

    Fallback strategy: If no audit tool is available or the Bash tool cannot execute the command, perform manual version analysis:

    line 101
  4. Distinctive:

    Use the Read tool to read the dependency list from Step 2.

    line 102
  5. Very specific:

    Use the Read tool to load references/known_cves.md and cross-reference each package name and version.

    line 103
  6. Very specific:

    Use the Read tool to load references/supply_chain.md and check for supply chain risks.

    line 104
  7. Distinctive:

    Search the codebase for imports and usages of the affected package.

    line 114
  8. Distinctive:

    If transitive, identify the dependency chain leading to the vulnerable package.

    line 131

“Common” is measured: kept by at least 6 in 10 of the 40 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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Dependency Audit Skill

Scan project dependency manifests for known CVEs and supply chain risks across all major programming ecosystems. This skill is language-agnostic and supports npm, pip, maven, bundler, go, composer, cargo, dotnet, and more.

Workflow

Step 1: Ecosystem Detection

Scan the project root and subdirectories for dependency manifest files to auto-detect the language and ecosystem in use. A project may use multiple ecosystems simultaneously.

Detection matrix:

EcosystemManifest Files
Node.js (npm/yarn/pnpm)package.json, package-lock.json, yarn.lock, pnpm-lock.yaml
Python (pip/pipenv/poetry)requirements.txt, Pipfile, Pipfile.lock, pyproject.toml, poetry.lock, setup.py, setup.cfg
Java (Maven/Gradle)pom.xml, build.gradle, build.gradle.kts
Ruby (Bundler)Gemfile, Gemfile.lock
Go (modules)go.mod, go.sum
PHP (Composer)composer.json, composer.lock
Rust (Cargo)Cargo.toml, Cargo.lock
.NET (NuGet)*.csproj, *.fsproj, packages.config, Directory.Build.props, Directory.Packages.props

Use glob patterns to find these files. Report which ecosystems were detected before proceeding.

Step 2: Dependency Enumeration

Parse each detected manifest file to extract all direct and transitive dependencies with their version numbers.

For lock files (package-lock.json, yarn.lock, Pipfile.lock, poetry.lock, Gemfile.lock, composer.lock, Cargo.lock, go.sum):

  • Extract exact resolved versions, not ranges.
  • These represent the actual installed versions and are the ground truth for auditing.

For manifest files without lock files (package.json, requirements.txt, pyproject.toml, Cargo.toml, etc.):

  • Extract declared version ranges.
  • Note that actual installed versions may differ; flag this as reduced audit confidence.

For each dependency, record:

  • Package name (including scope/namespace if applicable)
  • Declared version or version range
  • Resolved version (from lock file if available)
  • Whether it is a direct or transitive dependency
  • Whether it is a production or development dependency

Step 3: Vulnerability Lookup

Use the Bash tool to run the appropriate ecosystem-specific audit tool. Try tools in order of preference:

Node.js:

  1. npm audit --json (preferred)
  2. yarn audit --json
  3. pnpm audit --json
  4. Manual: cross-reference versions against references/known_cves.md

Python:

  1. pip-audit --format=json (preferred)
  2. safety check --json
  3. pip install pipdeptree && pipdeptree --warn fail
  4. Manual: cross-reference versions against references/known_cves.md

Java:

  1. mvn org.owasp:dependency-check-maven:check (Maven)
  2. gradle dependencyCheckAnalyze (Gradle with OWASP plugin)
  3. Manual: cross-reference versions against references/known_cves.md

Ruby:

  1. bundle-audit check --update (preferred)
  2. bundler-audit
  3. Manual: cross-reference versions against references/known_cves.md

Go:

  1. govulncheck ./... (preferred)
  2. go list -m -json all then cross-reference
  3. Manual: cross-reference versions against references/known_cves.md

PHP:

  1. composer audit --format=json (preferred, Composer 2.4+)
  2. Manual: cross-reference versions against references/known_cves.md

Rust:

  1. cargo audit --json (preferred)
  2. Manual: cross-reference versions against references/known_cves.md

.NET:

  1. dotnet list package --vulnerable --format json (preferred)
  2. Manual: cross-reference versions against references/known_cves.md

Fallback strategy: If no audit tool is available or the Bash tool cannot execute the command, perform manual version analysis:

  • Use the Read tool to read the dependency list from Step 2.
  • Use the Read tool to load references/known_cves.md and cross-reference each package name and version.
  • Use the Read tool to load references/supply_chain.md and check for supply chain risks.

Step 4: Impact Assessment

For each vulnerability finding, assess the following dimensions:

  1. Severity (CVSS): Report the CVSS v3.1 score and severity rating (Critical >= 9.0, High >= 7.0, Medium >= 4.0, Low < 4.0).
  2. Exploitability in project context:
    • Is the vulnerable function/module actually imported and used in the project code?
    • Search the codebase for imports and usages of the affected package.
    • Determine if the vulnerable code path is reachable from user-controlled input.
    • Flag as "Reachable", "Potentially Reachable", or "Not Reachable" based on analysis.
  3. Patch availability:
    • Is there a fixed version available?
    • What is the minimum version that resolves the vulnerability?
    • Are there multiple fix versions across major version lines?
  4. Breaking change risk:
    • Is the fix a patch version bump (low risk)?
    • Is the fix a minor version bump (moderate risk)?
    • Is the fix a major version bump (high risk, likely breaking changes)?
    • Are there known breaking changes documented in the changelog?
  5. Transitive vs Direct:
    • Is this a direct dependency (easier to fix) or transitive (may require upstream fix)?
    • If transitive, identify the dependency chain leading to the vulnerable package.

Step 5: Report

Generate a structured report with the following sections:

Summary:

  • Total dependencies scanned
  • Number of vulnerabilities found by severity
  • Ecosystems analyzed
  • Audit confidence level (high if lock files present, medium otherwise)

Findings table (sorted by severity, highest first):

For each finding, include:

  • CVE ID (or advisory ID)
  • Affected package name and installed version
  • Severity (Critical/High/Medium/Low) with CVSS score
  • Brief description of the vulnerability
  • Fixed version (minimum version that resolves the issue)
  • Upgrade path (exact command or change needed)
  • Reachability assessment (whether the vulnerable code path is actually used)

Recommended actions:

  • Prioritized list of upgrades to perform
  • Group by risk level (breaking vs non-breaking changes)
  • Provide exact commands for each ecosystem (npm install package@version, pip install package>=version, etc.)

Supply chain observations:

  • Any dependency confusion risks detected
  • Suspicious package names (potential typosquatting)
  • Packages with install scripts that should be reviewed
  • Lock file integrity observations

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.