Northwestern Tideline · guide

WordPress plugin vulnerabilities: how to know within an hour whether your site is affected

Nine in ten published WordPress vulnerabilities are in plugins. A 60-minute procedure: back up, list every plugin with its version from Site Health, look each one up in Patchstack and Wordfence, update in the right order, delete what you do not use, and stop announcing your versions.

Contents5 sections

A plugin advisory is published somewhere every working day. The question a company owner actually has is narrower: does this one touch my site? Answering it needs a list of what the site runs, two public databases and about an hour, all inside your own admin panel.

Why plugins, not WordPress itself

WordPress core is one codebase with automatic updates since version 3.7 (developer.wordpress.org hardening page). A plugin is separate software with its own author, release rhythm and quality. The numbers reflect that.

The Patchstack vulnerability statistics, read on 2026-10-25, give two all-time disclosure counts, 21,470 via Patchstack and 23,923 from other sources, which add up to 45,393 published WordPress vulnerabilities. By software type, 41,648 (92 %) are in plugins, 3,401 (7 %) in themes and 344 (1 %) in core.

Of all published entries, 33,561 (74 %) are patched and 11,832 (26 %) are not.

The 60-minute procedure

MinutesStepWhere
0–5Make a backup of the database and the filesHosting panel or backup plugin
5–15List every plugin and theme with its versionTools › Site Health › Info
15–35Look each one up in Patchstack and Wordfencepatchstack.com/database, wordfence.com/threat-intel
35–50Update in order, test after each batchDashboard › Updates; Plugins
50–55Delete inactive plugins and themesPlugins; Appearance › Themes
55–60Stop announcing the versionTheme or a small plugin

1. Back up first (0–5 min)

The WordPress backup page says it plainly: "Back up your database regularly, and always before an upgrade." A site has two parts, the database and the files, and "you need both to be able to fully restore a typical WordPress site." The same page says to keep at least three backups, stored in different places and on different mediums.

Confirm today's copy exists before touching anything.

2. Inventory (5–15 min)

Go to Tools › Site Health › Info. The documentation describes two sections there, Active Plugins and Inactive Plugins; each lists the plugin, "the version of the plugin, the creator of the plugin, and whether auto-updates are enabled". The Active Theme and Inactive Themes sections do the same for themes, and the WordPress section gives the core version.

The screen has an export button that copies everything to the clipboard; paste it into a document dated today.

Two things the screen will not show. Must-use plugins in wp-content/mu-plugins "do not show in the default list of plugins on the Plugins page"; ask whoever built the site whether any exist.

And a plugin bought outside the directory is listed like any other but its updates come from the vendor, not from wordpress.org: Slider Revolution, visible on 78 sites in our sample, has no page at wordpress.org/plugins/revslider; the address resolves to a search page.

3. Look each plugin up (15–35 min)

Two public databases cover WordPress specifically.

Patchstack. The plugin page sits at patchstack.com/database/wordpress/plugin/<slug>, where the slug is the folder name under wp-content/plugins. It opens with a tally, then one row per vulnerability with the title, the affected version range and the disclosure date.

On 2026-10-25 the Contact Form 7 page showed "0 present, 7 patched", the newest row an order-replay flaw in versions up to and including 6.0.5 dated 15/04/2025; the Slider Revolution page showed "0 present, 24 patched", the newest a cross-site scripting flaw in 7.0.0–7.0.16 dated 30/06/2026.

The reading is mechanical: if your version falls inside a listed range, that row applies to you.

Wordfence Intelligence at wordfence.com/threat-intel is the second database. Wordfence also reports flaws to the CVE system: the NVD entry for CVE-2024-2242, a reflected cross-site scripting flaw in Contact Form 7 up to and including 5.9, names security@wordfence.com as its source. Look the plugin up there as well.

NVD. The general database files WordPress plugins under a CPE name. The CPE 2.3 naming specification (NIST IR 7695, linked from cpe.mitre.org) builds a well-formed name from attributes; the example on that page lists eleven of them, among them vendor, product, version and target_sw.

For CVE-2024-2242 the configuration reads cpe:2.3:a:rocklobster:contact_form_7:*:*:*:*:*:wordpress:*:* with versionEndExcluding 5.9.2: the vendor is rocklobster, the product contact_form_7, and the target_sw field is "wordpress".

Write the result next to each plugin in your inventory: open advisory affecting my version, fixed in a version I do not have yet, or nothing published.

4. Update in order (35–50 min)

The order below is our practice, not a WordPress rule.

  1. Plugins with a published flaw that includes your version, one at a time, checking the site after each.
  2. The remaining plugins. The Plugins screen has an "Update Available" view; select them, choose Update under Bulk Actions and Apply. The documentation adds: "Always make sure you have a current backup of your site before updating your plugins."
  3. WordPress core, from Dashboard › Updates.
  4. The theme, last, because that is where a visual change shows.

Since WordPress 5.5 an administrator can opt in to automatic updates plugin by plugin or in bulk from the Plugins screen; WordPress runs them twice a day by default and emails the owner after each attempt. For a company site: auto-updates on for small, well-maintained plugins, a manual tested update for the ones that render the shop or the forms.

5. Delete what you do not use (50–55 min)

The hardening page is direct: "if you are not using a specific plugin, delete it from the system." Deactivating is not enough; an inactive plugin's files are still on the server and still appear in the Inactive Plugins section. Deactivate, then Delete, and do the same for inactive themes under Appearance › Themes.

6. Stop announcing the version (55–60 min)

WordPress prints <meta name="generator" content="WordPress x.y"> into every page: the code reference describes wp_generator() as the generator tag "generated on the wp_head hook"; that tag is why 356 sites in our sample showed their core version. A theme or a small plugin can remove that action.

The hardening page: "Security through obscurity is generally an unsound primary strategy." Removing the tag makes you harder to find in bulk; it does not fix anything. Do steps 1–5 first.

How Northwestern Tideline does this every day

The procedure above is what our Sentinel engine runs continuously for a company's sites, with two limits we keep in writing. First, we read primary sources daily: the Patchstack and Wordfence databases, NVD and CVE records, and the plugin authors' own changelogs.

Second, we observe only what a site shows to any visitor: the plugin folders referenced in the page source, the ?ver= strings on their assets and the generator tag. We do not log in, we do not probe, and we do not scan anything without written authorisation.

When an advisory's affected range covers a version a site publicly shows, a person reads the match before the company hears about it, with the advisory, the date and the fix version. What a site hides we do not count; the inventory in step 2 stays yours to keep.

The product is described on the Tideline page, and the other six areas in cybersecurity for companies in the age of AI. If you want your sites' plugin lists matched against published advisories and a written update plan, send us the domains.

This guide describes public documentation and databases as read on the dates given, not your site.

Frequently asked questions

Where do I see which plugins and versions my WordPress site runs?

In the admin panel under Tools, then Site Health, then Info. The Active Plugins and Inactive Plugins sections list each plugin with its version, its author and whether auto-updates are enabled; the WordPress section gives the core version. The export button copies the whole list to the clipboard.

How do I check whether a plugin has a known vulnerability?

Open the plugin's page in the Patchstack database (patchstack.com/database/wordpress/plugin/ followed by the plugin folder name) and in Wordfence Intelligence (wordfence.com/threat-intel). Each row gives the affected version range; if your version falls inside it, the row applies to you. NVD files the same flaws under a CPE name whose target_sw field is "wordpress".

Should I turn on automatic updates for plugins?

WordPress has allowed it plugin by plugin since version 5.5, runs the updates twice a day by default and emails the owner after each attempt. It suits small, well-maintained plugins. For the plugins that render your shop or your forms, a manual update after a backup and a test is safer, because an update can also break something.

Is it enough to deactivate a plugin I no longer use?

No. A deactivated plugin's files stay on the server and it still appears under Inactive Plugins. The WordPress hardening guidance is to delete a plugin you are not using: deactivate it, then click Delete. The same applies to inactive themes.

Does hiding the WordPress version make the site secure?

No. Removing the generator meta tag only stops the page from announcing the version; the WordPress hardening page calls security through obscurity an unsound primary strategy. It makes bulk discovery harder and is worth doing after the plugins are updated and the unused ones removed, not instead of that.

Sources

  1. 01

    Patchstack: WordPress vulnerability statistics, all time (45,393 entries; 21,470 via Patchstack, 23,923 other sources; plugin 41,648 / theme 3,401 / core 344; patched 33,561, not patched 11,832; XSS 40.03 %)

    Open the source accessed 

  2. 02

    Patchstack database: Contact Form 7 (0 present, 7 patched; order replay <= 6.0.5, 15/04/2025)

    Open the source accessed 

  3. 03

    Patchstack database: Slider Revolution (0 present, 24 patched; cross-site scripting 7.0.0–7.0.16, 30/06/2026)

    Open the source accessed 

  4. 04

    Wordfence Intelligence: WordPress vulnerability database (page is scripted; our fetcher received a browser challenge on 2026-10-25, so only the NVD attribution to security@wordfence.com is quoted)

    Open the source accessed 

  5. 05

    NVD: CVE-2024-2242, Contact Form 7 reflected XSS up to and including 5.9 (sourceIdentifier security@wordfence.com; CPE cpe:2.3:a:rocklobster:contact_form_7:*:*:*:*:*:wordpress:*:*, versionEndExcluding 5.9.2)

    Open the source accessed 

  6. 06

    CPE specification (MITRE): CPE 2.3 stack (Naming, Name Matching, Dictionary, Language), Naming = NIST IR 7695; the well-formed-name example lists part, vendor, product, version, update, edition, language, sw_edition, target_sw, target_hw, other

    Open the source accessed 

  7. 07

    WordPress.org documentation: Site Health screen (Tools > Site Health > Info; Active Plugins and Inactive Plugins show version, author and auto-update status; export to clipboard)

    Open the source accessed 

  8. 08

    WordPress.org documentation: Manage Plugins (Update Available view, Bulk Actions > Update; backup note; must-use plugins not shown in the default list)

    Open the source accessed 

  9. 09

    WordPress.org documentation: Plugin and themes auto-updates (since WordPress 5.5, per plugin or in bulk; runs twice per day by default; email notifications)

    Open the source accessed 

  10. 10

    WordPress.org documentation: WordPress Housekeeping (Deactivate, then Delete; removing inactive themes)

    Open the source accessed 

  11. 11

    WordPress Advanced Administration: Hardening WordPress (automatic updates since 3.7; "if you are not using a specific plugin, delete it from the system"; security through obscurity "generally an unsound primary strategy"; page last updated 2026-10-14)

    Open the source accessed 

  12. 12

    WordPress Advanced Administration: Backups ("always before an upgrade"; database and files; "keep at least three backups on file" in different places and on different mediums; page last updated 2026-10-14)

    Open the source accessed 

  13. 13

    WordPress code reference: get_the_generator() (html and xhtml cases return <meta name="generator" content="WordPress <version>">; used by the_generator())

    Open the source accessed 

  14. 14

    WordPress code reference: wp_generator() ("Displays the XHTML generator that is generated on the wp_head hook")

    Open the source accessed 

  15. 15

    WordPress Plugin Directory (plugin pages list version, tested-up-to and active installations; wordpress.org/plugins/revslider resolves to a search page)

    Open the source accessed 

  16. 16

    Northwestern Solutions: Lithuanian company websites in October 2026 (890 sites; WordPress on 535; version visible on 356; Contact Form 7 217, Elementor 164, WooCommerce 95, Slider Revolution 78)

    Open the source accessed 

How this guide was prepared

Northwestern Solutions wrote this guide from the texts of the laws and other sources listed above. The legal statements were compared with those texts; the date of the check is shown with the sources. The parties and amounts in the examples are invented. This is not legal or tax advice: for an unusual transaction, ask an accountant.

Found an inaccuracy? .