CVE Alerts
Monitor security vulnerability feeds for products, packages, and services you care about.
Requirements
Before using this skill, ensure:
- External feed access — agent can fetch RSS/JSON from CVE sources
- Local state storage — writable directory for seen items, suppressions, config
- Email/Telegram capability — SMTP credentials and/or Telegram bot for alerts (optional if dashboard-only)
- Scheduler — systemd timer, cron, or OpenClaw scheduler for periodic scans
Quick Start
- Create config directory and watchlist:
mkdir -p ~/.config/cve-alerts
- Create
~/.config/cve-alerts/config.json:
{
"feeds": ["https://cvefeed.io/rssfeed/severity/high.xml"],
"watchlist": ["node.js", "express", "nginx", "postgresql"],
"alertEmail": "security@example.com",
"alertPolicy": "immediate",
"dataDir": "~/.local/share/cve-alerts"
}
-
Run scanner:
node scripts/cve-scanner.mjs -
Set up timer for hourly scans (see references/deployment.md)
Operator Controls
Watchlist Management
Add items to config.json watchlist array:
- Product names:
"postgresql","nginx" - Package names:
"lodash","express" - Vendor names:
"apache","microsoft" - Internal names:
"mycompany-auth","internal-api"
Watchlist supports case-insensitive partial matching.
Suppression Rules
Create ~/.config/cve-alerts/suppressions.json:
{
"cves": ["CVE-2024-12345"],
"keywords": ["android", "ios"],
"patterns": [".*mobile.*"],
"temporary": [
{"cve": "CVE-2024-99999", "expires": "2026-06-01"}
]
}
cves— specific CVE IDs to ignorekeywords— terms that trigger false positivespatterns— regex patterns to excludetemporary— suppressions with expiry dates
Alert Policies
Set alertPolicy in config:
"immediate"— email on each new match"digest"— daily summary email"dashboard"— no email, dashboard only
Severity Filtering
Set minSeverity in config:
"critical"— CVSS 9.0+"high"— CVSS 7.0+ (default)"medium"— CVSS 4.0+"low"— all severities
Files
scripts/cve-scanner.mjs— main scanner (run directly or via timer)scripts/generate-dashboard.mjs— rebuild static dashboard HTMLreferences/config-schema.md— full configuration referencereferences/deployment.md— systemd timer and nginx setup
Workflow
Fetch feed → Filter by severity → Match watchlist → Apply suppressions →
Save new matches → Update dashboard → Send alerts (per policy)
Scanner is idempotent — safe to run repeatedly, only alerts on net-new matches.
