่ทณ่‡ณไธป่ฆๅ†…ๅฎน
ๅฐ้พ™่™พๅฐ้พ™่™พAI
๐Ÿค–

Threat Radar

Continuously scans Docker images, dependencies, network ports, SSL/TLS, and OpenClaw config for CVEs; alerts via WhatsApp, Telegram, or Discord.

ไธ‹่ฝฝ152
ๆ˜Ÿๆ ‡0
็‰ˆๆœฌ1.0.0
ๅฎ‰ๅ…จๅˆ่ง„
ๅฎ‰ๅ…จ้€š่ฟ‡
๐Ÿ’ฌPrompt

ๆŠ€่ƒฝ่ฏดๆ˜Ž

threat-radar โ€” Continuous Security Scanning & CVE Alerting

Version: 1.0.0
Category: Security
Type: Monitoring + Alerting
Published: February 24, 2026


What It Does

Continuous security posture monitoring that scans your running services, Docker images, and software dependencies for known CVEs. Alerts you via WhatsApp/Telegram/Discord when new vulnerabilities affect your stack.

No external services required โ€” runs entirely within OpenClaw using public CVE feeds.


Features

Security Scanning

  • Docker image vulnerability scanning โ€” trivy-style CVE detection for your container images
  • Dependency auditing โ€” npm, pip, cargo lockfile analysis for known vulnerabilities
  • Port discovery โ€” identifies exposed services on your local network
  • SSL/TLS grading โ€” evaluates certificate validity and security config
  • OpenClaw config security โ€” checks your OpenClaw setup against best practices
  • Exposed service detection โ€” flags accidentally public services

CVE Monitoring

  • Automatic CVE feeds โ€” pulls from NVD (National Vulnerability Database) and GitHub Advisories
  • Track your versions โ€” matches CVEs to YOUR installed software versions
  • Severity-based alerting โ€” CRITICAL immediately, HIGH in daily digest, LOW weekly summary
  • Recovery tracking โ€” knows when you patch and closes alerts

Reporting

  • Weekly security digest โ€” Canvas dashboard or markdown report
  • Trend tracking โ€” is your security posture improving?
  • Remediation suggestions โ€” actionable fixes per finding
  • CWE references โ€” understand the vulnerability class

Commands

Scanning

threat-radar scan                    # Full security scan now
threat-radar scan --docker           # Docker images only
threat-radar scan --deps <path>      # Dependency audit (npm/pip/cargo)
threat-radar scan --ports            # Port scan (local network)
threat-radar scan --ssl <domain>     # SSL certificate check
threat-radar scan --openclaw         # OpenClaw config check
threat-radar scan --exposed          # Check for accidentally public services

CVE Tracking

threat-radar cves                    # Show CVEs affecting your stack
threat-radar cves --critical         # Only CRITICAL severity
threat-radar cves --since <days>     # New CVEs in last N days
threat-radar watch <software> <v>    # Track specific software version
threat-radar unwatch <software>      # Stop tracking
threat-radar watches                 # List all watched software

Reporting

threat-radar report                  # Generate full security report
threat-radar report --period=week    # Weekly summary
threat-radar report --period=month   # Monthly summary
threat-radar status                  # Quick security status
threat-radar history                 # View past scans
threat-radar trends                  # Posture improvement tracking

Management

threat-radar init                    # Initialize threat-radar
threat-radar config show             # Show current configuration
threat-radar config update           # Update scan settings
threat-radar cron-install            # Set up scheduled daily scans + CVE checks
threat-radar cron-remove             # Remove scheduled scans
threat-radar data-refresh            # Force CVE database refresh

Output

All commands support:

  • --json โ€” machine-readable JSON output
  • --csv โ€” comma-separated for spreadsheet import
  • --md โ€” markdown for reports
  • --no-color โ€” plain text (useful for logs)

Example Usage

Initial Setup

$ threat-radar init
โœ“ Initialized threat-radar
โœ“ Created ~/.openclaw/workspace/monitoring/threat-radar/
โœ“ Pulled CVE databases (NVD: 245,891 entries, GitHub: 14,329 advisories)
โœ“ Scanned Docker images: 3 images, 0 vulnerabilities found
โœ“ Scanned dependencies: npm 487 packages, pip 89 packages โ€” 2 warnings
โœ“ Security score: 87/100

Ready to scan. Try: threat-radar scan --docker

Full Security Scan

$ threat-radar scan
Scanning security posture...

[DOCKER IMAGES] โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  openclaw-agent:latest        0 CVEs  โœ“ Clean
  postgres:15                  2 CVEs  โš  Medium (libc, OpenSSL)
  redis:latest                 0 CVEs  โœ“ Clean

[DEPENDENCIES] โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  npm (workspace root)          3 CVEs  โš  1 High, 2 Medium
    - lodash@4.17.19            CVE-2021-23337 (High: Prototype pollution)
    - axios@0.21.0              CVE-2021-41773 (Medium: XXE in parser)
    - ws@7.4.0                  CVE-2021-32640 (Medium: Buffer overflow)

[PORTS] โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  192.168.1.50:80    (nginx)         โœ“ Private network
  192.168.1.50:443   (nginx)         โœ“ Private network
  10.10.10.230:6379  (redis)         โœ“ Private network

[SSL/TLS] โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  openclaw.local                Grade A  Valid until Jun 24, 2026 โœ“
  example.com                   Grade B  Warning: no HSTS header

[OPENCLAW CONFIG] โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  agentToAgent permissions      โœ“ Restricted (not [*])
  Credential file permissions   โœ“ 600 (not world-readable)
  Memory file permissions       โœ“ 600
  Gateway auth enabled          โœ“ Yes
  Sandbox restrictions          โš  exec-sandbox: false (accepted risk)

[EXPOSED SERVICES] โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  0 accidentally public services found โœ“

SUMMARY
โ”€โ”€โ”€โ”€โ”€โ”€
Security Score: 82/100 (down 5 points from 87 on 2026-02-23)
Critical CVEs: 0
High CVEs: 1 (lodash)
Medium CVEs: 4 (axios, ws, libc, OpenSSL)
Low CVEs: 2
Estimated fix time: 2 hours (update npm packages)

Next scan: 2026-02-25 09:00 UTC (via cron)

CVE Tracking

$ threat-radar cves --critical
Critical vulnerabilities affecting your stack:

None currently. Your environment is clean at this severity level.

$ threat-radar cves
CVEs affecting your stack:

[HIGH] โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  CVE-2021-23337 (lodash)
    Package: lodash 4.17.19
    Component: Prototype pollution
    Fix: upgrade to 4.17.21 (available now)
    Reference: https://nvd.nist.gov/vuln/detail/CVE-2021-23337
    Status: UNFIXED (discovered 5 days ago)

[MEDIUM] โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  CVE-2021-41773 (axios)
    Package: axios 0.21.0
    Component: XXE in parameter parser
    Fix: upgrade to 0.27.0+ (available now)
    Status: UNFIXED (discovered 3 days ago)

  CVE-2021-32640 (ws)
    Package: ws 7.4.0
    Component: Buffer overflow in frame parsing
    Fix: upgrade to 8.0.0+ (available now)
    Status: UNFIXED

  CVE-2023-4807 (libc - in postgres:15 image)
    Component: Memory corruption in glibc malloc
    Fix: Rebuild image from postgres:15-alpine (fixed base image)
    Status: UNFIXED (image vulnerability)

  CVE-2024-1086 (OpenSSL - in postgres:15 image)
    Component: Key recovery in RSA operations
    Fix: Update Dockerfile to postgres:16 (has patch)
    Status: UNFIXED (image vulnerability)

View details: threat-radar cves <CVE-ID>
Set alert threshold: threat-radar config update --alert-level=medium

Weekly Report

$ threat-radar report --period=week
โ”Œโ”€ SECURITY POSTURE REPORT (Feb 18 - Feb 24, 2026) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                                                                         โ”‚
โ”‚  Overall Score: 82/100 (was 85/100 on Feb 17)                         โ”‚
โ”‚                                                                         โ”‚
โ”‚  Metrics โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€  โ”‚
โ”‚    Critical CVEs:      0 (โ†“ 0)                                          โ”‚
โ”‚    High CVEs:          1 (โ†‘ 1, new: lodash)                            โ”‚
โ”‚    Medium CVEs:        4 (โ†” 4)                                          โ”‚
โ”‚    Low CVEs:           2 (โ†“ 1, patched: urllib3)                       โ”‚
โ”‚    Unfixed vulnerabilities: 7 (โ†‘ 2)                                    โ”‚
โ”‚    Average fix time: 1.8 hours (was 1.2)                               โ”‚
โ”‚                                                                         โ”‚
โ”‚  Trend Analysis โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€  โ”‚
โ”‚    Feb 17 (85/100) โ†“ Feb 18 (83/100) โ†“ Feb 19 (82/100) โ†” Feb 24      โ”‚
โ”‚    โš  Declining trend: +2 new CVEs found, zero patches applied         โ”‚
โ”‚                                                                         โ”‚
โ”‚  Action Items โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”‚
โ”‚    1. npm audit fix       โ€” 3 packages, 15 min                         โ”‚
โ”‚    2. Update postgres:15  โ€” rebuild from latest, 10 min                โ”‚
โ”‚    3. Review HSTS config  โ€” grade B on example.com                     โ”‚
โ”‚                                                                         โ”‚
โ”‚  Docker Images (3 scanned) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€  โ”‚
โ”‚    openclaw-agent:latest    โœ“ 0 CVEs                                  โ”‚
โ”‚    postgres:15              โš  2 CVEs (libc, OpenSSL)                  โ”‚
โ”‚    redis:latest             โœ“ 0 CVEs                                  โ”‚
โ”‚                                                                         โ”‚
โ”‚  Dependencies (npm + pip) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€  โ”‚
โ”‚    npm (workspace root)     โš  3 High + Medium CVEs                    โ”‚
โ”‚      lodash, axios, ws                                                 โ”‚
โ”‚    pip (python deps)       โœ“ 0 CVEs                                    โ”‚
โ”‚                                                                         โ”‚
โ”‚  Port Security (7 ports) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€  โ”‚
โ”‚    All ports on private network (10.0.0.0/8, 192.168.0.0/16) โœ“       โ”‚
โ”‚                                                                         โ”‚
โ”‚  Next Actions โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”‚
โ”‚    โ–ก Run: npm audit fix                                                โ”‚
โ”‚    โ–ก Update base images: postgres:16 or postgres:15-alpine             โ”‚
โ”‚    โ–ก Run: threat-radar scan (verify fixes)                             โ”‚
โ”‚                                                                         โ”‚
โ”‚  Alert Settings โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”‚
โ”‚    Critical:  Alert immediately via WhatsApp                           โ”‚
โ”‚    High:      Daily digest (at 09:00 UTC)                              โ”‚
โ”‚    Medium:    Weekly report                                            โ”‚
โ”‚    Low:       Suppress (monthly audit only)                            โ”‚
โ”‚                                                                         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

To apply remediations: threat-radar remediate --auto-npm
To stop alerts:        threat-radar config update --alert-level=critical

Scheduled Scanning

$ threat-radar cron-install
โœ“ Installed daily security scan (09:00 UTC)
โœ“ Installed CVE feed refresh (every 6 hours)
โœ“ Installed weekly report (Monday 08:00 UTC)
โœ“ WhatsApp alerts: CRITICAL (immediate), HIGH (daily digest)

Cron schedule:
  - threat-radar scan         โ†’ daily 09:00 UTC
  - threat-radar data-refresh โ†’ every 6h (00:00, 06:00, 12:00, 18:00 UTC)
  - threat-radar report       โ†’ Monday 08:00 UTC

View logs: threat-radar logs [--tail=50]

Installation

clawhub install threat-radar

Configuration

Threat-radar stores config in ~/.openclaw/workspace/monitoring/threat-radar/config.json:

{
  "scan_paths": {
    "docker_images": true,
    "dependencies": ["npm", "pip"],
    "ports": true,
    "ssl_domains": ["example.com", "openclaw.local"],
    "openclaw_check": true,
    "exposed_scan": true
  },
  "alerts": {
    "critical": "immediate",
    "high": "daily_digest",
    "medium": "weekly",
    "low": "suppress"
  },
  "cve_feeds": ["nvd", "github"],
  "max_age_days": 30,
  "local_network_cidrs": ["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"],
  "ignored_cves": [],
  "watched_software": {}
}

Edit with: threat-radar config update


How It Works

  1. Initialization โ€” Downloads latest CVE databases from NVD + GitHub Advisories (~500KB)
  2. Scanning โ€” Runs 7 security checks in parallel:
    • Docker image analysis (hashes vs CVE DB)
    • Dependency file parsing (npm/pip/cargo) โ†’ version extraction
    • Port scan (local network only, non-invasive)
    • SSL cert validation
    • Service exposure check (looks for :80, :443, :8080, etc. on public IPs)
    • OpenClaw config audit
  3. CVE Matching โ€” Compares detected versions against CVE database
  4. Alerting โ€” Dispatches alerts based on severity + cooldown
  5. History โ€” Stores scan results in SQLite (trend analysis)

Performance: Full scan ~30 seconds. CVE refresh ~10 seconds. Optimized for homelab scale.


Integration with Other Skills

  • With infra-watchdog โ€” threat-radar feeds security events into watchdog alerts
  • With ops-journal โ€” CVE findings auto-logged for incident correlation
  • With daily-maintenance.sh โ€” integrated as Phase 8 (security scanning)

Security Notes

  • Offline mode โ€” scans work without internet after initial CVE download
  • No credential exposure โ€” never scans credentials (security-hardener handles that)
  • Local network only โ€” port scanning stays within your private networks
  • Privacy โ€” no data sent external except NVD API calls (CVE checking)

Troubleshooting

Q: "CVE database outdated" warning
A: Run threat-radar data-refresh to pull latest feeds

Q: Scan is slow
A: Disable slow checks: threat-radar config update --skip-ports

Q: Too many alerts
A: Adjust severity: threat-radar config update --alert-level=high

Q: False positive CVE
A: Mark as accepted risk: threat-radar ignore CVE-XXXX-XXXXX


What's Next

  • Real-time CVE feed (when a new vulnerability drops affecting you, know in minutes)
  • Remediation automation (auto-file PRs to update dependencies)
  • Integration with vulnerability scanners (nessus, qualys API)

Support

For issues: Check ~/.openclaw/workspace/monitoring/threat-radar/threat-radar.log

threat-radar logs --tail=100
threat-radar logs --follow  # Real-time logging

Built for OpenClaw agents running homelab infrastructure.

ๅฆ‚ไฝ•ไฝฟ็”จใ€ŒThreat Radarใ€๏ผŸ

  1. ๆ‰“ๅผ€ๅฐ้พ™่™พAI๏ผˆWeb ๆˆ– iOS App๏ผ‰
  2. ็‚นๅ‡ปไธŠๆ–นใ€Œ็ซ‹ๅณไฝฟ็”จใ€ๆŒ‰้’ฎ๏ผŒๆˆ–ๅœจๅฏน่ฏๆก†ไธญ่พ“ๅ…ฅไปปๅŠกๆ่ฟฐ
  3. ๅฐ้พ™่™พAI ไผš่‡ชๅŠจๅŒน้…ๅนถ่ฐƒ็”จใ€ŒThreat Radarใ€ๆŠ€่ƒฝๅฎŒๆˆไปปๅŠก
  4. ็ป“ๆžœๅณๆ—ถๅ‘ˆ็Žฐ๏ผŒๆ”ฏๆŒ็ปง็ปญๅฏน่ฏไผ˜ๅŒ–

็›ธๅ…ณๆŠ€่ƒฝ