Trivy Vulnerability Scanning
Overview
Trivy is a simple, comprehensive vulnerability scanner that can analyze npm package-lock.json files for known security vulnerabilities. It works offline with a local vulnerability database.
Installation
bash# Install Trivy apt-get update && apt-get install -y trivy # Verify installation trivy --version
Database Setup
Trivy requires a vulnerability database. For offline mode:
bash# Download the vulnerability database trivy image download-db --severity HIGH,CRITICAL # Or let Trivy auto-download on first use trivy config /root/package-lock.json
Scanning Modes
Scan package-lock.json
bashtrivy config /root/package-lock.json \ --format json \ --output results.json \ --severity HIGH,CRITICAL
Scan Options
--format json: Output JSON format (best for parsing)--severity HIGH,CRITICAL: Only HIGH and CRITICAL vulnerabilities--output file.json: Write to file--offline-db: Use offline database if downloaded--skip-update: Skip database update (offline mode)
Output Structure
Trivy JSON output contains:
json{ "Results": [ { "Target": "package-lock.json", "Type": "npm", "Misconfigurations": null, "Vulnerabilities": [ { "VulnerabilityID": "CVE-2021-12345", "PkgName": "lodash", "InstalledVersion": "4.17.20", "FixedVersion": "4.17.21", "Severity": "HIGH", "Title": "Prototype pollution", "Description": "...", "References": ["https://nvd.nist.gov/vuln/detail/CVE-2021-12345"] } ] } ] }
Parsing Results
pythonimport json def parse_trivy_results(json_file): with open(json_file, 'r') as f: data = json.load(f) vulnerabilities = [] for result in data.get('Results', []): for vuln in result.get('Vulnerabilities', []): if vuln['Severity'] in ['HIGH', 'CRITICAL']: vulnerabilities.append({ 'package': vuln['PkgName'], 'version': vuln['InstalledVersion'], 'cve_id': vuln['VulnerabilityID'], 'severity': vuln['Severity'], 'title': vuln['Title'], 'fixed_version': vuln.get('FixedVersion', 'N/A'), 'references': vuln.get('References', []) }) return vulnerabilities
Usage
Use this skill when:
- Scanning npm package-lock.json for vulnerabilities
- Need offline vulnerability detection
- Building security audit pipelines
- Filtering for specific severity levels
Related Skills
cvss-score-extraction: Extract CVSS scores for detected vulnerabilitiessecurity-audit-csv-reporting: Convert results to CSV format


