Plugin version with known vulnerabilities

At least one installed plugin is at a version with published vulnerabilities. Plugin flaws are the most common way WordPress sites are compromised, and unauthenticated ones are exploited at internet scale within days of disclosure.

Do this: Update the plugin named above, or remove it. Vulnerable plugins are the single most common way WordPress sites are taken over.
PassNo identified plugin version matches a known vulnerability.
HighAn installed plugin is at a version with known vulnerabilities.

The fix, in one snippet

Example to adapt WP-CLI
wp plugin update <slug>
# or, if it is abandoned:
wp plugin deactivate <slug> && wp plugin delete <slug>

Illustrative values. Change the paths, hostnames and options to match your own site before using it.

The sections below explain what is tested, why it matters and the alternatives.

What we test

Each plugin and version from wordpress-plugin-inventory is compared against Scan.now's vulnerability database: a processed copy of the Wordfence Intelligence feed (Defiant, Inc.) as redistributed by the WPProbe project (Valentin Lobstein / Chocapikk, MIT licence), holding more than 43,000 records across plugins, themes and core. Every record has an affected version range, severity, CVE identifier, CVSS score and vector, and an access requirement. A plugin is reported vulnerable when its version falls inside any record's range. The finding lists the matching CVEs sorted by CVSS, each tagged Unauth, Auth or Privileged, with the fixed version where the range has an upper bound; a range with no upper bound means no fix is recorded. Plugins whose version could not be read are listed in the inventory but are not matched, so nothing is claimed without a version. Identifications that rest on an ambiguous route match are marked as such. Scan.now never sends an exploit or a probe for the flaw; the result is a version comparison, so a site patched by a host without bumping the Stable tag can show a false positive. Rated high.

Why it matters

Exploitation of plugin vulnerabilities is automated and indiscriminate. When the File Manager plugin shipped an unauthenticated file-upload flaw (CVE-2020-25213), Wordfence documented attacks against hundreds of thousands of sites within days, and that pattern repeats with each significant disclosure: proof-of-concept code appears, scanners across the internet add it, and every site still on the affected version is tried. The access tag is the key to urgency. An Unauth entry with a CVSS score of 9 or more is a "patch today" item because no account is needed. Auth entries require a login, which matters less than it sounds on a site with open registration, a WooCommerce customer role, or a shared editor password. Privileged entries need an administrator and are typically chained after some other foothold. Abandoned plugins are the awkward case: a range with no fixed version means the author never patched, and the plugin may have been closed on wordpress.org without anyone telling you. The CVE and CVSS guide explains the scoring; how to read a scan report covers false positives.

How to fix it

Update the plugin to the fixed version shown in the finding, or everything at once:

wp plugin update <slug>
wp plugin update --all
wp plugin auto-updates enable --all

If no fixed version exists, remove the plugin rather than leaving it deactivated, since its files remain reachable either way:

wp plugin deactivate <slug>
wp plugin delete <slug>

Check the plugin's page on wordpress.org for a closure notice before keeping it. A premium plugin updates only while its licence is active. A firewall rule from your host or security plugin can cover the gap for a few days but is not a substitute for the patch. If any listed entry was unauthenticated, assume it may have been used and look for the usual traces: new administrator accounts, PHP files in wp-content/uploads/, modified core files, and unknown cron events:

wp user list --role=administrator
wp core verify-checksums
wp plugin verify-checksums --all
find wp-content/uploads -name '*.php'

Re-run the WordPress scanner after updating to confirm the version no longer matches any record.

Where this fits

Plugin version with known vulnerabilities is check 3 of 10 that the website vulnerability scanner runs under wordpress plugins, themes and core, ordered the way they are worth fixing. That ordering is the point: Fixing this one while the check above it still fails buys less than it looks like.

Fix this one first

Above it in the same category sits Exposed wp-content/debug.log (high), where the WordPress debug log at /wp-content/debug.log is readable by anyone. An attacker who has that does not need this, so it is the better use of the same hour.

What fixing this still leaves open

Plugin version with known vulnerabilities closes one route in. Immediately below it: Theme version with known vulnerabilities, where the identified theme is at a version with published vulnerabilities; WordPress core version has known vulnerabilities, where the WordPress core version on this site falls inside the affected range of at least one published vulnerability; Installed plugins identified, where installed plugins were identified from the REST API route index and from asset paths in the page, with versions read from each plugin's readme.txt.

Found in the same scan

The website vulnerability scanner reports this alongside checks from other categories that are at least as serious, including Certificate chain and hostname validation, where the certificate presented for this hostname did not validate: The chain does not reach a trusted root, an intermediate is missing, the name does not match, or the certificate is self-signed or expired, and Exposed .env configuration file, where a .env configuration file is served from the web root. A single run of website vulnerability scanner answers all of them at once.

Prompt for an AI Hand this check to an assistant Sign in to copy it
The first few lines
You are a senior web engineer. I ran a security and SEO scanner against my site and it reported the finding below. Fix it properly rather than suppressing the symptom.

Finding: Plugin version with known vulnerabilities (high severity)
Scanner check id: wordpress-vulnerable-plugin
19 more lines, including the evidence and the exact fix

The rest of this prompt names the pages and line numbers we found the problem on, the configuration to change, and the constraints a good answer has to respect. It is free, it just needs an account so the work is not scraped wholesale.

Sign in with Google

Signing in is free and takes one click. We store your email address and nothing else.

References

  1. Wordfence Intelligence: Vulnerability database
  2. WPProbe (Chocapikk): stealthy WordPress plugin scanner
  3. OWASP Top 10:2021 A06 - Vulnerable and Outdated Components
  4. CVE Program

Related guides