Monitor open-source software for new CVE disclosures, retrieve vulnerability data from authoritative databases (OSV/NVD/CISA KEV/Github Advisory), and perform six-dimension deep analysis for high-severity vulnerabilities.
dot
digraph modes {
"User request" -> "Mode decision";
"Mode decision" -> "Monitor mode" [label="scan watchlist / 扫描watchlist"];
"Mode decision" -> "Analysis mode" [label="specific CVE / 分析CVE"];
"Mode decision" -> "Retrieve mode" [label="list only / 仅列出"];
"Monitor mode" -> "query-vulns.py";
"query-vulns.py" -> "CVSS<7: summary table";
"query-vulns.py" -> "CVSS>=7: deep analysis";
"Analysis mode" -> "Collect CVE data";
"Collect CVE data" -> "Six-dimension analysis";
"Retrieve mode" -> "query-vulns.py";
"query-vulns.py" -> "Summary table only";
}
Scan watchlist for new vulnerabilities:
Run python scripts/query-vulns.py --watchlist <path> --days 7 --index reports/INDEX.md --output reports/raw-results.json
Parse JSON output, check user_version_status field:
affected: CVE affects versions within watchlist range → categorize by CVSS
not_in_scope: CVE only affects versions outside watchlist range → add to summary table with "out of watchlist scope" note
For infrastructure software (ecosystem empty in watchlist): always output summary table first, user manually decides which CVEs need deep analysis
Archive results and update reports/INDEX.md
Deep analysis for a specific CVE:
python scripts/query-vulns.py --watchlist <path> --cve CVE-YYYY-XXXXX --output reports/raw-{CVE-ID}.jsonreports/YYYY-MM-DD-{CVE-ID}.mdreports/INDEX.mdList vulnerabilities without analysis:
python scripts/query-vulns.py --watchlist <path> --days 7 --output reports/raw-results.jsonAdd project dependencies to watchlist:
python scripts/extract-deps.py --watchlist <path> --project-dir <path>Six dimensions for CVSS ≥ 7 (see references/report-template.md):
Before deep analysis, collect from these sources (see references/data-sources.md):
reports/YYYY-MM-DD-{CVE-ID}.mdreports/INDEX.md with columns: CVE-ID, Software, CVSS, Deep Analysis, Date, Report PathCompare query results against reports/INDEX.md to filter out already-analyzed CVEs. First execution treats all found CVEs as new.
ActionCommandMonitor watchlistpython scripts/query-vulns.py --watchlist watchlist.yaml --days 7 --index reports/INDEX.mdAnalyze specific CVEpython scripts/query-vulns.py --watchlist watchlist.yaml --cve CVE-YYYY-XXXXXExtract dependenciespython scripts/extract-deps.py --watchlist watchlist.yaml --project-dir .List only (no analysis)python scripts/query-vulns.py --watchlist watchlist.yaml --days 30 --skip-osv