wordpress-vulnerable-scanner
A fast, safe Rust CLI tool for detecting known CVE vulnerabilities in WordPress core, plugins, and themes using the WPVulnerability.net API.
Features
- Multiple input modes - scan live sites, JSON manifests, or specify components directly
- Parallel API requests - fast vulnerability lookups using concurrent requests
- Version-aware filtering - only reports vulnerabilities affecting installed versions
- CVSS scoring - severity levels (Critical/High/Medium/Low) from CVSS scores
- Multiple output formats - human-readable tables or JSON for automation
- Exit codes - integrate with CI/CD pipelines
- Security hardened - URL encoding, file size limits, safe HTTP defaults
Installation
Pre-built binaries
Download from GitHub Releases:
| Platform | Architecture | File |
|---|---|---|
| Linux | x86_64 | wordpress-vulnerable-scanner-linux-x86_64.tar.gz |
| Linux | x86_64 (static) | wordpress-vulnerable-scanner-linux-x86_64-musl.tar.gz |
| Linux | ARM64 | wordpress-vulnerable-scanner-linux-aarch64.tar.gz |
| macOS | Intel | wordpress-vulnerable-scanner-macos-x86_64.tar.gz |
| macOS | Apple Silicon | wordpress-vulnerable-scanner-macos-aarch64.tar.gz |
| Windows | x86_64 | wordpress-vulnerable-scanner-windows-x86_64.zip |
Cargo
Build from source
Quick Start
Scan a live WordPress site
Scan with auto-detected scheme
Check specific components
# Check WordPress core version
# Check plugins (slug:version format)
# Check themes
# Combined check
Use JSON manifest from wordpress-audit
# First, audit a WordPress installation
# Then scan for vulnerabilities
Filter by severity
# Only show high and critical vulnerabilities
JSON output for automation
|
Input Modes
| Mode | Flag | Description |
|---|---|---|
| URL scan | (positional) | Scan a live WordPress site |
| Core version | -c, --core |
Check specific WordPress version |
| Plugins | -p, --plugins |
Check plugins (slug:version,...) |
| Themes | -t, --themes |
Check themes (slug:version,...) |
| Manifest | -m, --manifest |
JSON file from wordpress-audit |
Output Formats
| Format | Flag | Description |
|---|---|---|
| Human | -o human |
Colored table (default) |
| JSON | -o json |
Machine-readable JSON |
| None | -o none |
Silent (exit code only) |
Exit Codes
| Code | Meaning |
|---|---|
| 0 | No vulnerabilities found |
| 1 | Vulnerabilities found (non-critical) |
| 2 | Critical vulnerabilities found |
| 10 | Error (network, parsing, etc.) |
Severity Levels
Based on CVSS v3 scores:
| Level | CVSS Range | Color |
|---|---|---|
| Critical | 9.0 - 10.0 | Red |
| High | 7.0 - 8.9 | Orange |
| Medium | 4.0 - 6.9 | Yellow |
| Low | 0.1 - 3.9 | Green |
Security
Input Validation
- URL encoding - Component slugs are URL-encoded to prevent injection
- File size limits - Manifest files limited to 10 MB to prevent memory exhaustion
- Safe HTTP defaults - TLS verification enabled, reasonable timeouts
Data Source
Vulnerability data is fetched from WPVulnerability.net, a free CVE database for WordPress.
API Reference
The scanner can also be used as a library:
use ;
use ;
async
License
MIT License - see LICENSE for details.