From appsec
This skill should be used when the user asks to "check for vulnerable dependencies", "audit dependencies", "find outdated packages", "scan for CVEs", "check for typosquatting", or mentions "vulnerable components", "outdated dependencies", or "supply chain" in a security context. Maps to OWASP Top 10 2021 A06: Vulnerable and Outdated Components.
npx claudepluginhub florianbuetow/claude-code --plugin appsecThis skill uses the workspace's default tool permissions.
Analyze project dependencies for known vulnerabilities (CVEs), abandoned packages,
Acquire memory dumps from live systems/VMs and analyze with Volatility 3 for processes, networks, DLLs, injections in incident response or malware hunts.
Provides x86-64/ARM disassembly patterns, calling conventions, control flow recognition for static analysis of executables and compiled binaries.
Identifies anti-debugging checks like IsDebuggerPresent, NtQueryInformationProcess in Windows binaries; suggests bypasses via patches/hooks/scripts for malware analysis, CTFs, authorized RE.
Analyze project dependencies for known vulnerabilities (CVEs), abandoned packages, unpinned versions, typosquatting risks, and excessive transitive dependency chains. This skill heavily relies on external scanners for CVE detection and uses Claude analysis for configuration hygiene, supply chain risks, and contextual assessment.
Read ../../shared/schemas/flags.md for full flag
documentation. This skill supports all cross-cutting flags.
Key flags for this skill:
| Flag | Effect |
|---|---|
--scope <value> | Target scope (default: changed). module: and full are common for dependency audits. |
--depth <value> | Analysis depth (default: standard). deep traces transitive dependency trees. |
--severity <value> | Minimum severity to report (default: all). |
--format <value> | Output format: text, json, sarif, md. |
--fix | Generate dependency update commands or patches for each finding. |
--explain | Add CVE details, exploit context, and learning material to each finding. |
OWASP Top 10 2021 -- A06: Vulnerable and Outdated Components
Applications are vulnerable when they use components with known vulnerabilities, do not track component versions, do not scan for vulnerabilities regularly, do not fix or upgrade underlying platforms in a timely fashion, or do not test compatibility of updated libraries.
CWE Mappings:
STRIDE Mapping: All categories -- the impact depends on the specific vulnerability in the component. A vulnerable serialization library maps to Tampering and Elevation of Privilege; a vulnerable TLS library maps to Information Disclosure.
Read references/detection-patterns.md before
running analysis. It contains Grep regex patterns for manifest file issues, lockfile
analysis, and supply chain risk indicators.
--scope flag (default: changed).package.json, package-lock.json, yarn.lock, pnpm-lock.yamlrequirements.txt, requirements*.txt, Pipfile, Pipfile.lock, pyproject.toml, poetry.lock, setup.py, setup.cfggo.mod, go.sumCargo.toml, Cargo.lockpom.xml, build.gradle, build.gradle.kts, gradle.lockfileGemfile, Gemfile.lockcomposer.json, composer.lock*.csproj, packages.config, Directory.Packages.propsDockerfile, docker-compose*.yml--scope changed returns no manifest files, expand to --scope module:<auto>
to find the nearest manifest.Detect available scanners in priority order:
| Scanner | Detect | Ecosystem | Best For |
|---|---|---|---|
| npm audit | which npm | Node.js | Built-in CVE scanning for npm packages |
| pip-audit | which pip-audit | Python | CVE scanning for Python packages |
| trivy | which trivy | Universal | Multi-ecosystem CVE + license scanning |
| osv-scanner | which osv-scanner | Universal | OSV database lookups across all ecosystems |
| cargo-audit | which cargo-audit | Rust | CVE scanning for Rust crates |
This skill depends heavily on scanners. If no scanners are available, warn the user prominently and recommend installing at least one. Claude analysis alone cannot reliably detect known CVEs -- it can only check configuration hygiene and supply chain indicators.
For each detected scanner relevant to the project ecosystem, run against the scoped manifests:
npm audit --json (from package.json directory)pip-audit --format json (from requirements.txt or pyproject.toml directory)trivy fs --format json --scanners vuln <target>osv-scanner --format json -r <target>cargo audit --json (from Cargo.toml directory)Normalize scanner output to the findings schema per
../../shared/schemas/scanners.md.
Important: Run scanners from the correct working directory. Dependency scanners require being in the project root or the directory containing the manifest file.
Even when scanners are available, Claude adds value by analyzing patterns that scanners
miss. Using Grep and Read, search for patterns from references/detection-patterns.md:
^, ~, *,
>= without upper bound).Merge Claude findings with scanner findings, deduplicating by package name and version.
Output findings using the schema from
../../shared/schemas/findings.md.
Use the DEP prefix for finding IDs (e.g., DEP-001, DEP-002).
Group findings by category:
^, ~, *, >=).lodahs vs lodash, reqeusts vs requests).See ../../shared/schemas/scanners.md for full scanner
invocation details. This skill primarily uses:
| Scanner | What It Catches |
|---|---|
| npm audit | Known CVEs in npm packages, severity ratings, fix availability |
| pip-audit | Known CVEs in Python packages via PyPI/OSV advisories |
| trivy | Multi-ecosystem CVEs, license issues, Dockerfile base image vulnerabilities |
| osv-scanner | OSV database matches across all ecosystems, including Go, Maven, PyPI, npm |
| cargo-audit | RustSec advisory database matches for Rust crates |
Scanner availability is critical for this skill. Without scanners, the skill can only detect configuration-level issues (unpinned versions, missing lockfiles) but cannot reliably identify known CVEs.
When scanners are unavailable:
confidence: low for anything that would need scanner
confirmation.All findings use the schema defined in
../../shared/schemas/findings.md.
ID Prefix: DEP (e.g., DEP-001)
References for each finding:
references.owasp: A06:2021references.cwe: CWE-1035 (known vulns) or CWE-1104 (unmaintained)references.stride: Depends on the specific vulnerabilitymetadata.tool: outdated-depsmetadata.framework: owaspmetadata.category: A06For CVE findings, also include:
references.cve: The CVE identifier (e.g., CVE-2023-44270)fix.summary: The fixed version or upgrade commandSummary table after all findings:
| Severity | Count |
|----------|-------|
| CRITICAL | N |
| HIGH | N |
| MEDIUM | N |
| LOW | N |
| Category | Count |
|---------------------------|-------|
| Known CVEs | N |
| Unpinned Versions | N |
| Missing Lockfiles | N |
| Abandoned Packages | N |
| Typosquatting Candidates | N |
| Excessive Dependencies | N |
Followed by: