vulnerability-csv-reporting
Generate structured CSV security audit reports from Trivy JSON vulnerability data with severity filtering and proper field mapping.
- License 许可
- MIT
- 最近更新
- 2026-10-02
- Stars
- ★ 93
- Forks
- 7
01 前言 Front Matter
- name
- vulnerability-csv-reporting
- description
- Generate structured CSV security audit reports from Trivy JSON vulnerability data with severity filtering and proper field mapping.
03 SKILL.md 正文
Vulnerability CSV Reporting
CSV Schema
Package,Version,CVE_ID,Severity,CVSS_Score,Fixed_Version,Title,Url
Complete Report Generator
import json
import csv
def get_cvss_score(vuln):
cvss = vuln.get('CVSS', {})
for source in ['nvd', 'ghsa', 'redhat']:
if source in cvss:
score = cvss[source].get('V3Score')
if score is not None:
return score
return 'N/A'
def generate_csv_report(json_input, csv_output, severity_filter=('HIGH', 'CRITICAL')):
with open(json_input, 'r', encoding='utf-8') as f:
data = json.load(f)
headers = ["Package", "Version", "CVE_ID", "Severity",
"CVSS_Score", "Fixed_Version", "Title", "Url"]
rows = []
for result in data.get('Results', []):
for vuln in result.get('Vulnerabilities', []):
if vuln.get('Severity') in severity_filter:
rows.append({
"Package": vuln.get('PkgName', 'N/A'),
"Version": vuln.get('InstalledVersion', 'N/A'),
"CVE_ID": vuln.get('VulnerabilityID', 'N/A'),
"Severity": vuln.get('Severity', 'N/A'),
"CVSS_Score": get_cvss_score(vuln),
"Fixed_Version": vuln.get('FixedVersion') or 'N/A',
"Title": vuln.get('Title', 'N/A'),
"Url": vuln.get('PrimaryURL', 'N/A'),
})
with open(csv_output, 'w', newline='', encoding='utf-8') as f:
writer = csv.DictWriter(f, fieldnames=headers)
writer.writeheader()
writer.writerows(rows)
print(f"[+] {len(rows)} vulnerabilities written to {csv_output}")
return rows
Key Notes
- Use
newline=''inopen()to prevent extra blank lines on Windows - Use
or 'N/A'(not.get(..., 'N/A')) for FixedVersion since it may be present but empty string csv.DictWriterautomatically handles quoting of fields containing commas
04 同仓库更多 Skills
object_counter
Count occurrences of an object in the image using computer vision algorithm.
travel-planning-workflow
Invoke this skill when performing travel planning. It defines a structured workflow for generating itineraries. Following this workflow is essential to ensure the final plan satisfies user requirements.
bundled-dataset-search-tool
invoke this skill when you need to perform database search for travel planning. This skill provides some useful pre-packaged tools to look up accommodations, attractions, cities, driving distance, flights, and restaurants from the bundled dataset.
glm-output
Output-processing guidance for GLM tasks. Especially useful after glm-basics and glm-calibration when you need verifier-matching metrics from output.nc and a final /root/metrics.json.
glm-calibration
Calibration guidance for GLM tasks. Often most effective after glm-basics has clarified the setup; glm-output is the companion skill for exact final metric computation.
glm-basics
A good starting point for GLM calibration tasks. Use to inspect glm3.nml, confirm how GLM runs, and identify the relevant files before moving on to calibration and output evaluation.