Beschrijving
Deze plugin integreert met de WPVulnerability API en biedt realtime kwetsbaarheden analyses voor je WordPress core, plugins, thema’s, PHP version, Apache HTTPD, nginx, MariaDB, MySQL, ImageMagick, curl, memcached, Redis en SQLite.
Het levert gedetailleerde rapporten rechtstreeks in je WordPress dashboard, zodat je op de hoogte blijft van potentiële beveiligingsrisico’s. Configureer de plugin om periodiek meldingen te sturen over de beveiligingsstatus van je site, zodat je op de hoogte blijft zonder overweldigd te worden. De plugin is ontworpen met het oog op gebruiksgemak en ondersteunt proactieve beveiligingsmaatregelen zonder persoonsgegevens op te slaan of op te halen van je site.
Betrouwbaarheid gegevens
De informatie in de informatiedatabase is afkomstig van verschillende bronnen die door derden zijn beoordeeld. Er is geen enkele aansprakelijkheid voor de informatie. Handel op eigen risico.
De plugin gebruiken
WP-CLI
Je kunt de volgende WP-CLI commando’s gebruiken om kwetsbaarheden te beheren en te controleren:
- Core:
wp wpvulnerability core - Plugin’s:
wp wpvulnerability plugins - Thema’s:
WP wpkwetsbaarheidsthema's - PHP:
wp wpvulnerability php - Apache HTTPD:
wp wpvulnerability apache - nginx:
wp wpvulnerability nginx - MariaDB:
wp wpvulnerability mariadb - MySQL:
wp wpvulnerability mysql - ImageMagick:
wp wpvulnerability imagemagick - curl:
wp wpvulnerability curl - memcached:
wp wpvulnerability memcached - Redis:
wp wpvulnerability redis - SQLite:
wp wpvulnerability sqlite
To configure the plugin you can use:
- Hide component:
wp wpvulnerability config hide <component> [on|off] - Notification email:
wp wpvulnerability config email <emails>(comma separatted) - Notification period:
wp wpvulnerability config period <never|daily|weekly> - Log retention:
wp wpvulnerability config log-retention <0|1|7|14|28>(in days) - Cache duration:
wp wpvulnerability config cache <1|6|12|24>(in hours)
Alle commando’s ondersteunen de optie - format om het output format op te geven:
- format=table: toont de resultaten in een tabel format (standaard).- format=json: toont de resultaten in JSON format.
Hulp nodig?
wp wpvulnerability --help: toont helpinformatie voor de WPVulnerability opdrachten.wp wpvulnerability [command] --help: toont helpinformatie voor een WPVulnerability opdracht.
REST API
De WPVulnerability plugin biedt verschillende REST API endpoints om informatie over kwetsbaarheden op te halen voor verschillende onderdelen van je WordPress site.
- Core:
/wpvulnerability/v1/core - Plugin’s:
/wpvulnerability/v1/plugins - Thema’s:
/wpvulnerability/v1/themes - PHP:
/wpvulnerability/v1/php - Apache HTTPD:
/wpvulnerability/v1/apache - nginx:
/wpvulnerability/v1/nginx - MariaDB:
/wpvulnerability/v1/mariadb - MySQL:
/wpvulnerability/v1/mysql - ImageMagick:
/wpvulnerability/v1/imagemagick - curl:
/wpvulnerability/v1/curl - memcached:
/wpvulnerability/v1/memcached - Redis:
/wpvulnerability/v1/redis - SQLite:
/wpvulnerability/v1/sqlite
De WPVulnerability REST API gebruikt Applicatiewachtwoorden voor authenticatie. Je moet een geldig Applicatie Wachtwoord opnemen in de Authorisatie header van je aanvragen.
Voorbeeldaanvraag met verificatie
curl -X GET https://example.com/wp-json/wpvulnerability/v1/plugins -u username:application_password
Vervang gebruikersnaam door je WordPress username en application_password door je Applicatie wachtwoord.
Extra configuraties
“Van:” mail (sinds: 3.2.2)
Als je, om wat voor reden dan ook, wil dat de e-mails die door de plugin worden verzonden een andere Van hebben dan die van de sitebeheerder, dan kun je dit veranderen in WP-config.php door een constante toe te voegen:
define( 'WPVULNERABILITY_MAIL', 'sender@example.com' );
Als de constante actief is, is deze zichtbaar in het configuratiescherm.
Force hiding checks (since: 4.1.0)
If you want to always hide a specific component, you can define a constant in wp-config.php. When set to true, the option will be checked automatically in the settings screen and the related analysis will be skipped.
Example:
define( 'WPVULNERABILITY_HIDE_APACHE', true );
Available constants: WPVULNERABILITY_HIDE_CORE, WPVULNERABILITY_HIDE_PLUGINS, WPVULNERABILITY_HIDE_THEMES, WPVULNERABILITY_HIDE_PHP, WPVULNERABILITY_HIDE_APACHE, WPVULNERABILITY_HIDE_NGINX, WPVULNERABILITY_HIDE_MARIADB, WPVULNERABILITY_HIDE_MYSQL, WPVULNERABILITY_HIDE_IMAGEMAGICK, WPVULNERABILITY_HIDE_CURL, WPVULNERABILITY_HIDE_MEMCACHED, WPVULNERABILITY_HIDE_REDIS, WPVULNERABILITY_HIDE_SQLITE.
Cache duration (since: 4.1.0)
By default, data from the API is cached for 12 hours. To change this, define WPVULNERABILITY_CACHE_HOURS in wp-config.php with one of 1, 6, 12 or 24. This value overrides the setting screen and WP-CLI command.
define( 'WPVULNERABILITY_CACHE_HOURS', 24 );
Log rotation (since: 4.2.0)
WPVulnerability stores the most recent API responses so you can review recent calls from the new log tab. Define WPVULNERABILITY_LOG_RETENTION_DAYS in wp-config.php to control how many days of entries are preserved. Supported values are 0, 1, 7, 14 or 28; using 0 disables logging entirely.
define( 'WPVULNERABILITY_LOG_RETENTION_DAYS', 14 );
When the constant is present its value is enforced in the settings UI and through WP-CLI, ensuring consistent log rotation across environments.
Security configuration (since: 4.3.0)
WPVulnerability uses a hybrid detection approach for server software (ImageMagick, Redis, Memcached, SQLite): PHP extensions first (most secure), then shell commands as fallback (most accurate). You can control this behavior using security configuration constants in wp-config.php.
Global disable of shell commands:
define( 'WPVULNERABILITY_DISABLE_SHELL_EXEC', true );
Completely disables shell command usage. Falls back to PHP extensions only. Use for maximum security when accuracy loss is acceptable.
Security mode (standard/strict/disabled):
define( 'WPVULNERABILITY_SECURITY_MODE', 'strict' );
standard– Hybrid detection: PHP extensions first, shell commands fallback (default, best accuracy)strict– PHP extensions only, no shell commands (high security, lower accuracy)disabled– No software detection at all (maximum security)
Component whitelist:
define( 'WPVULNERABILITY_SHELL_EXEC_WHITELIST', 'imagemagick,redis' );
Allows shell commands only for specified components. Available components: imagemagick, redis, memcached, sqlite. Use for granular control.
Examples:
Maximum security (no shell commands):
define( 'WPVULNERABILITY_SECURITY_MODE', 'strict' );
Only allow ImageMagick shell detection:
define( 'WPVULNERABILITY_SHELL_EXEC_WHITELIST', 'imagemagick' );
Complete disable:
define( 'WPVULNERABILITY_DISABLE_SHELL_EXEC', true );
All shell commands are hardcoded and validated – no user input is involved. Commands are logged for security auditing.
Compabiliteit
- WordPress: 5.6 – 7.1
- PHP: 7.0 – 8.5
- WP-CLI: 2.3.0 – 2.12.0
Beveiliging
Deze plugin houdt zich aan de volgende veiligheidsmaatregelen en beoordelingsprotocollen voor elke versie:
- WordPress plugin handboek
- WordPress plugin beveiliging
- WordPress API’s beveiliging
- WordPress coderingsstandaarden
- plugin controleren (PCP)
Privacy
- Deze plugin of de WordPress Vulnerability Database API verzamelt geen informatie over je site, je identiteit, de plugins, thema’s of inhoud die de site heeft.
Kwetsbaarheden
- A security vulnerability was found and fixed in version 4.2.2.1. All previous versions (3.3.0 – 4.2.1) are affected. Please update to version 4.2.2.1 or later.
Found a security vulnerability? Please report it to us privately at ROBOTSTXT.
Bijdragers
Je kunt bijdragen aan deze plugin in de WPVulnerability repository.
Schermafbeeldingen



Installatie
Automatische download
Ga naar de sectie met plugins in je WordPress, zoek naar [wpvulnerability]; download en installeer de plugin.
Handmatige download
Pak de inhoud van de Zip uit en upload de inhoud naar de folder /WP-content/plugins/wpvulnerability/. Eenmaal geüpload zal het verschijnen in je plugin lijst.
FAQ
-
Waar komt de informatie over de kwetsbaarheid vandaan?
-
De oorsprong ligt in de WPVulnerability.com API. De kwetsbaarheden die in deze API worden weergegeven zijn afkomstig van verschillende bronnen, zoals CVE’s.
-
Worden gegevens van mijn site ergens naartoe gestuurd?
-
Nee, nooit. Je privacy is erg belangrijk voor ons. We commercialiseren niet met je gegevens.
-
Welke kwetsbaarheden zal ik vinden?
-
Kwetsbaarheden in WordPress core, plugin’s, thema’s, PHP, Apache HTTPD, nginx, MariaDB, MySQL, ImageMagick, curl, memcached, Redis en SQLite zijn gedocumenteerd.
-
Wat moet ik doen als mijn site een kwetsbaarheid heeft?
-
Allereerst gemoedsrust. Onderzoek wat de kwetsbaarheid is en controleer vooral of je de laatste versie van het aangetaste element hebt. We raden je actief aan om al je WordPress en de bijbehorende plugins up-to-date te houden. Neem contact op met je hostingprovider om niet-WordPress kwetsbaarheden te patchen (zoals webserver, databases en andere software).
Beoordelingen
Bijdragers & ontwikkelaars
“WPVulnerability” is open source software. De volgende personen hebben bijgedragen aan deze plugin.
Bijdragers“WPVulnerability” is vertaald in 14 localen. Dank voor de vertalers voor hun bijdragen.
Vertaal “WPVulnerability” in je eigen taal.
Interesse in ontwikkeling?
Bekijk de code, haal de SVN repository op, of abonneer je op het ontwikkellog via RSS.
Changelog
[5.1.2] – 2026-08-07
Opgelost
- Missing
load_plugin_textdomain()call caused a “Translation loading for thewpvulnerabilitydomain was triggered too early”_doing_it_wrong()notice on WordPress 6.7+. The textdomain is now explicitly loaded on theinithook.
Toegevoegd
- WordPress Playground blueprint (
blueprint.json) with pre-installed vulnerable plugins and a theme for quick testing.
Gewijzigd
- Security vulnerability reporting link updated to ROBOTSTXT.
- Contributor repository link updated to git.robotstxt.es/ROBOTSTXT/wpvulnerability.
- The
readme.txtChangelog section now shows only the latest 3 versions; the full history remains inchangelog.txt.
Compatibiliteit
- WordPress: 5.6 – 7.1
- PHP: 7.0 – 8.5
- WP-CLI: 2.3.0 – 2.12.0
Tests
- PHP Coding Standards: 3.13.5
- WordPress Coding Standards: 3.3.0
- PHPStan: 2.1.55 (level 9, 0 errors)
- PHPUnit: 9.6.34 (25 tests)
[5.1.1] – 2026-07-09
Opgelost
- Site Health: the memcached, Redis, and SQLite vulnerability tests always returned “Invalid software type” because those components were missing from the software list. They now run correctly.
- “Send test email” failed when no email recipients were configured: the forced-test path added the admin email but the send gate used a flag computed before the override. The test email now sends.
- “Run notification now” reported failure when only webhook channels (Slack/Teams/Discord/Telegram) were enabled and email was disabled. The notification result now reflects whether any channel delivered successfully.
- Weekly notification cron events were never auto-scheduled, because the
weeklycron schedule was registered only atinitwhile the on-load scheduling runs earlier. The weekly/daily schedule registration moved to the always-loaded scheduler so weekly notifications schedule correctly. - Deactivation deleted the per-component analysis settings (
wpvulnerability-analyze), so deactivating and reactivating reset which components were hidden. Analysis settings are now preserved on deactivation (only uninstall removes them). - The debug “Cron Status” panel always showed the notification event as “not scheduled” because it checked the wrong hook name (
wpvulnerability_send_notificationinstead ofwpvulnerability_notification). - The debug “last run” timestamp was always empty because it read a
wpvulnerability-logsoption that is never written; it now reads the most recent API log entry. - Redis detection called
close()twice on the success path (once in thetryblock, once infinally); the redundant close was removed. - The single-site vulnerable-themes count was hardcoded to
0instead of reading the stored option.
Gewijzigd
- Single-site email recipient sanitization now uses
is_email()for strict validation, matching the multisite behaviour. - Removed a redundant nonce field from the single-site “Reset Plugin” form (the form only submits the full-reset action).
- Removed dead code: the unused
wpvulnerability_sanitize_messagescallback and its setting registration, and an unused$tools_actionvariable in the multisite admin.
Compatibiliteit
- WordPress: 5.6 – 7.1
- PHP: 7.0 – 8.5
- WP-CLI: 2.3.0 – 2.12.0
Tests
- PHP Coding Standards: 3.13.5
- WordPress Coding Standards: 3.3.0
- PHPStan: 2.1.55 (level 9, 0 errors)
- PHPUnit: 9.6.34 (25 tests)
[5.1.0] – 2026-07-08
Beveiliging
wpvulnerability_validate_shell_command()now uses exactin_array()match instead ofstripos()substring matching for the shell-command allowlist (defense-in-depth).wpvulnerability_detect_php(),wpvulnerability_detect_curl(), andwpvulnerability_detect_webserver()now route throughwpvulnerability_safe_shell_exec(), so every software-detection shell call is validated and recorded in the Shell Execution Audit Log. Previously these calledshell_exec()directly, bypassing the wrapper and the audit log. As a side effect this also fixes nginx/angie version detection:escapeshellcmd()was escaping the2>&1redirect, so stderr (where nginx prints its version) was never captured.
Opgelost
- Multisite uninstall fatal error:
Uncaught Error: Undefined constant "WPVULNERABILITY_PLUGIN_BASE"when “Delete all plugin data on uninstall” was enabled.uninstall.phpnow defines the constant before loadingwpvulnerability-run.php. WPVULNERABILITY_HIDE_*constants now stopshell_execdetection for hidden components during scheduled scans and in the admin “Software Detection Methods” panel. Previously they only hid the results from the UI, so the audit log kept filling with “command not found” entries for components the administrator had explicitly deactivated.wpvulnerability_detect_webserver()no longer shell-probes a hidden web server via the sibling path:WPVULNERABILITY_HIDE_NGINXandWPVULNERABILITY_HIDE_APACHEnow fully isolate the hidden server.- Multisite cron requests on non-main subsites no longer load all plugin module files. No WPVulnerability cron events are scheduled on subsites, so the extra loading was wasted work.
- LiteSpeed / OpenLiteSpeed / Caddy shell detection in the WP_DEBUG diagnostic panel now works: the commands no longer use
2>/dev/null(which the shell-command validator rejected),caddywas added to the allowlist, andwhichoutput is validated as a real path so “command not found” messages are not mistaken for a detection.
Gewijzigd
Network: trueadded to the plugin header to declare network-aware multisite behaviour.- Removed the unused
$plugin_statusparameter fromwpvulnerability_plugin_info_after(); the PHPCS suite now passes with zero warnings. - Multisite network dashboard: the “Site Health” footer link pointed to
wp-admin/network/site-health.php, which does not exist (Site Health is a per-site screen). It now links to the main site’swp-admin/site-health.php.
Compatibiliteit
- WordPress: 5.6 – 7.1
- PHP: 7.0 – 8.5
- WP-CLI: 2.3.0 – 2.12.0
Tests
- PHP Coding Standards: 3.13.5
- WordPress Coding Standards: 3.3.0
- PHPStan: 2.1.55 (level 9, 0 errors)
- PHPUnit: 9.6.34 (18 tests)
Previous versions
Als je de volledige changelog wil zien, ga dan naar het bestand changelog.txt.
