dependency-vulnerability
SKILL.md
Dependency Vulnerability Management (OWASP A09)
Identify and remediate known vulnerabilities in third-party dependencies.
When to Use
- Running security audits on projects
- Updating dependencies
- Reviewing Dependabot/Snyk alerts
- Setting up CI/CD security checks
- Evaluating new packages
- Responding to CVE announcements
Vulnerability Sources
| Source | Coverage | Updates |
|---|---|---|
| NPM Advisory Database | JavaScript | Real-time |
| GitHub Advisory Database | Multi-language | Real-time |
| NVD (NIST) | All | Daily |
| Snyk Vulnerability DB | Multi-language | Real-time |
| OSV (Open Source Vulnerabilities) | Multi-language | Real-time |
Audit Commands by Ecosystem
Node.js / npm
# Run security audit
npm audit
# Get JSON output for CI
npm audit --json
# Auto-fix where possible
npm audit fix
# Force fixes (may include breaking changes)
npm audit fix --force
# Check specific severity
npm audit --audit-level=high
Node.js / Yarn
# Yarn v1
yarn audit
# Yarn v2+
yarn npm audit
# With specific severity
yarn audit --level high
Python / pip
# Using pip-audit (recommended)
pip install pip-audit
pip-audit
# Using safety
pip install safety
safety check
# Check requirements file
safety check -r requirements.txt
pip-audit -r requirements.txt
Ruby / Bundler
# Using bundler-audit
gem install bundler-audit
bundle-audit check --update
# Using bundler
bundle audit
Java / Maven
# OWASP Dependency-Check plugin
mvn org.owasp:dependency-check-maven:check
# Or add to pom.xml
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>8.4.0</version>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
Go
# Using govulncheck (official)
go install golang.org/x/vuln/cmd/govulncheck@latest
govulncheck ./...
# Using nancy
go list -json -deps ./... | nancy sleuth
PHP / Composer
# Local Checker
composer audit
# Using Symfony CLI
symfony check:security
# Using Roave Security Advisories
composer require --dev roave/security-advisories:dev-latest
.NET
# Using dotnet CLI
dotnet list package --vulnerable
# Include transitive dependencies
dotnet list package --vulnerable --include-transitive
CI/CD Integration
GitHub Actions
name: Security Audit
on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
- cron: '0 0 * * *' # Daily
jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: npm ci
- name: Run security audit
run: npm audit --audit-level=high
- name: Run Snyk
uses: snyk/actions/node@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
GitLab CI
security_audit:
stage: test
script:
- npm ci
- npm audit --audit-level=high
allow_failure: false
only:
- merge_requests
- main
Dependabot Configuration
# .github/dependabot.yml
version: 2
updates:
# JavaScript dependencies
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
groups:
production-dependencies:
dependency-type: "production"
development-dependencies:
dependency-type: "development"
update-types:
- "minor"
- "patch"
# Python dependencies
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
# Docker base images
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "weekly"
# GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
Snyk Integration
# Install Snyk CLI
npm install -g snyk
# Authenticate
snyk auth
# Test project
snyk test
# Monitor project (for continuous monitoring)
snyk monitor
# Test with severity threshold
snyk test --severity-threshold=high
# Generate SBOM
snyk sbom --format=cyclonedx1.4+json
Lock File Best Practices
package-lock.json / yarn.lock
# Always commit lock files
git add package-lock.json
# Use ci instead of install in CI
npm ci # Respects lock file exactly
# Verify integrity
npm ci --ignore-scripts # Safer for initial audit
Requirements.txt with hashes
# Generate with hashes
pip-compile --generate-hashes requirements.in
# Or use pip-tools
pip install pip-tools
pip-compile --generate-hashes
# requirements.txt with hashes
certifi==2024.2.2 \
--hash=sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1
Vulnerability Response Workflow
// 1. Assess the vulnerability
const assessVulnerability = {
severity: 'HIGH', // From CVE
exploitability: 'PROOF_OF_CONCEPT',
affectedVersions: '<1.2.3',
currentVersion: '1.2.0',
// Is it exploitable in your context?
inProductionPath: true,
exposedToUntrustedInput: true,
// Priority calculation
priority: 'P1' // Fix immediately
};
// 2. Determine fix approach
const fixApproaches = [
'Upgrade to patched version',
'Apply security patch',
'Use alternative package',
'Implement workaround',
'Accept risk (document)'
];
// 3. Test the fix
// 4. Deploy to production
// 5. Document the remediation
Package Evaluation Checklist
Before adding a new dependency:
# Check download stats and maintenance
npm view <package>
# Check for known vulnerabilities
npm audit <package>
snyk test <package>
# Review on npm/GitHub
# - Last publish date
# - Number of maintainers
# - Open issues/PRs
# - Security policy
# - License
// Evaluation criteria
const packageEvaluation = {
// Maintenance
lastPublish: '< 6 months ago',
maintainers: '>= 2',
openIssues: 'reasonable response time',
// Popularity (indicates community review)
weeklyDownloads: '> 10,000',
dependents: '> 100',
// Security
knownVulnerabilities: 0,
securityPolicy: true,
// Quality
tests: true,
typeDefinitions: true,
documentation: true
};
Software Bill of Materials (SBOM)
# Generate SBOM with CycloneDX
npm install -g @cyclonedx/cyclonedx-npm
cyclonedx-npm --output-file sbom.json
# Generate with Syft
syft . -o cyclonedx-json > sbom.json
# Scan SBOM for vulnerabilities
grype sbom:./sbom.json
Code Review Checklist
- npm/yarn audit passes with no high/critical issues
- Dependabot or similar enabled
- Lock files committed and up to date
- No packages with known vulnerabilities
- Security audit runs in CI/CD
- New dependencies evaluated before adding
- Unused dependencies removed
- SBOM generated for releases
Best Practices
- Automate Scanning: Run audits in CI/CD pipeline
- Update Regularly: Schedule dependency updates
- Monitor Continuously: Use Snyk/Dependabot alerts
- Minimize Dependencies: Fewer deps = smaller attack surface
- Review New Packages: Evaluate before adding
- Use Lock Files: Pin exact versions
- Generate SBOMs: Track what you ship
- Have a Response Plan: Know how to respond to CVEs
Weekly Installs
2
Repository
latestaiagents/…t-skillsGitHub Stars
2
First Seen
Feb 4, 2026
Installed on
mcpjam2
claude-code2
replit2
junie2
windsurf2
zencoder2