All guides

[ Data ] · 8 min read

How Many WordPress Plugin Vulnerabilities Are There? 28,076 Since 2023

28,076 WordPress plugin vulnerabilities have been disclosed since January 2023. We divided them by install base instead of counting them raw, and the risk ranking almost completely inverts — only one plugin survives in both top tens. The most dangerous plugins turn out to be in neither list, because they have been removed from the directory entirely.

Key takeaways

  • 45.7% of WordPress plugin advisories name a plugin that is no longer in the WordPress.org directory — 4,876 of 10,678, across 3,934 plugins. Removal does not uninstall anything, and WordPress does not notify the sites still running them.
  • Normalising by install base almost completely reorders the risk table. Of the top ten plugins by raw advisory count and the top ten by advisories per million installs, exactly one appears in both.
  • Membership and LMS plugins carry 30x the advisory rate of security plugins — 70.4 per million active installs against 2.31.
  • 47.1% of plugins in the directory have not shipped an update in two years, but they hold only 3.0% of active installs. Abandonment is a long-tail phenomenon, not a mainstream one.
  • 693 abandoned plugins carry a published advisory, across 1,929,330 active installs. That is the population actually at risk, and it is far smaller and more specific than "WordPress is insecure".

28,076 WordPress plugin vulnerabilities were disclosed between January 2023 and August 2026. Ranked by raw advisory count — which is how every "most vulnerable plugins" list does it — the result mostly measures popularity. Divide by install base instead and the table almost completely inverts. And 45.7% of the advisories we could match name a plugin WordPress has since removed from its directory, which does not uninstall it from anyone's site.

A plugin installed on ten million sites attracts researchers. One installed on four hundred does not. Counting advisories without dividing by install base produces a list of well-examined plugins and calls it a list of dangerous ones.

So we pulled 28,076 CVE records from the National Vulnerability Database — every advisory filed by Patchstack and Wordfence, the two CNAs that cover the WordPress ecosystem, from January 2023 to August 2026 — and crawled the WordPress.org plugin directory for the denominator: 53,545 plugins holding 326,662,480 active installs. The full dataset is available as CSV.

Divide by install base and it is a different table

Restricting to plugins with at least 10,000 installs and at least one advisory leaves 1,015 plugins. Ranked one way and then the other, the two top tens share exactly one entry.

Ranked by advisory countInstallsAdvisoriesPer 1M
Happy Addons for Elementor400,0003690
Tutor LMS100,00036360
GiveWP100,00034340
Bold Page Builder40,00030750
Brizy Page Builder70,00023329
The same dataset, ranked by raw advisory count and by advisories per million active installs.
Ranked by advisories per millionInstallsAdvisoriesPer 1M
MasterStudy LMS10,000161,600
LA-Studio Element Kit10,000161,600
Welcart e-Commerce10,000131,300
Points Management System10,000121,200
Paid Membership Subscriptions10,000111,100
Ranked by rate, the list is almost entirely different plugins.
Slope chart connecting the top ten WordPress plugins ranked by advisory count to the top ten ranked by advisories per million installs. Only one line crosses between the two columns.
One line crosses the gap. Every other plugin in one list is absent from the other.Built from NVD advisories and the WordPress.org plugin API, retrieved 22 August 2026.

The dangerous plugins are not in either list

This one we found by accident. Thousands of advisories named plugin slugs that would not join to the directory at all. The obvious explanation was a broken crawl, so we queried fifteen of them directly against the WordPress.org plugin API.

All fifteen returned 404. They are not crawl gaps. They are plugins WordPress.org has removed.

Counted across the whole corpus: 4,876 of 10,678 slug-resolved Patchstack advisories — 45.7% — name a plugin that is no longer in the directory. That is 3,934 distinct plugins. Applying a deliberately conservative test, requiring the slug to contain a hyphen and exceed four characters, still leaves 2,623.

This is the part that matters, and it is the reason every published ranking is quietly wrong: those plugins are still installed. Closing a plugin removes it from the directory. It does not deactivate it, does not uninstall it, and does not put a notice in anyone's dashboard. A site running a closed plugin keeps running it, will never receive another update, and is told nothing.

Every "most vulnerable plugins" list is therefore a survey of survivors. The plugins that were dangerous enough to be pulled are the ones that dropped out of the sample.

A 30x spread between the safest and riskiest categories

Grouping by the directory's own tags and dividing advisories by the category's total install base gives a rate that is comparable across categories:

CategoryPluginsActive installsAdvisoriesPer 1M
Membership / LMS221,890,00013370.37
Media / gallery592,110,0007234.12
Page builder / design24145,660,00069315.18
E-commerce19119,530,00024612.60
Forms5420,720,0001808.69
Social / marketing7910,230,000807.82
Performance / caching7111,640,000685.84
Backup / migration4316,110,000764.72
SEO / analytics11240,790,0001714.19
Security13838,470,000892.31
Advisories per million active installs, by plugin category. Plugins with at least 10,000 installs.

Membership and LMS plugins carry thirty times the advisory rate of security plugins. That is not a subtle difference in risk profile. If you are running a course platform or a paid-membership site on WordPress, you are operating in the worst-behaved corner of the ecosystem.

Security plugins coming last is worth a moment. It is what you would hope for, and it is not guaranteed — a security plugin with a vulnerability is a particularly bad object. The data says the category broadly earns its trust.

Abandonment is real but concentrated

  • 25,209 plugins — 47.1% of the directory — have not shipped an update in 24 months. That number gets quoted a lot and sounds alarming.
  • Those plugins hold 9,667,140 active installs: 3.0% of the total. Almost all abandonment is in the long tail, on plugins nobody runs.
  • 693 abandoned plugins carry a published advisory, across 1,929,330 active installs. This is the population that is actually exposed.

Under two million installs is a far smaller problem than "half the directory is abandoned" implies, and a far more actionable one. It is a specific list of plugins on a specific set of sites.

Method

  • Advisories: the NVD CVE API 2.0, scoped to the two WordPress-ecosystem CNAs — Patchstack (`audit@patchstack.com`) and Wordfence (`security@wordfence.com`) — from 1 January 2023 to 22 August 2026. 17,315 and 10,761 records respectively.
  • NVD caps a query at 120 days and returns an empty result, without an error, for anything wider. Requests are chunked at 110 days.
  • Plugin slugs: Patchstack embeds the WordPress.org slug in its advisory text; Wordfence gives a display name, which is matched back to a slug through the directory's own name index. 14,885 advisories resolved, across 8,826 plugins.
  • Install base: the WordPress.org plugin API, crawled twice and unioned — 53,545 plugins.
  • Rates are computed only for plugins with at least 10,000 active installs, below which the bucketing makes a per-million figure meaningless.

Limitations

`active_installs` is a bucket floor, not a count. WordPress.org reports 10,000 for anything between 10,000 and 19,999. Per-plugin rates built on it are therefore upper bounds, and all ten plugins in the top-by-rate table sit in that lowest bucket, where the true figure could be half what we show. Category rates aggregate across buckets, so the bias is shared and the ranking between categories holds even though the levels are upper bounds.

The closure rate is a Patchstack-only measurement. Wordfence advisories give a display name that we resolve by looking it up in the directory — so a closed plugin can never resolve on that side, by construction. Reporting a blended figure would understate it.

Directory coverage is 53,545 of 66,142 plugins. The plugin API pages an unstable sort, so a single crawl sees about 74% of it. This does not move any number here: the 4,579 plugins that only the second pass found hold 182,120 installs between them — 0.056% of the total — and every metric filters at 10,000 installs anyway. Install-mass coverage is above 99.9%.

Advisory counts are not incident counts. A plugin with a high rate has been examined and reported on. Silence is not safety, and some of the quietest plugins in this dataset are quiet because nobody has looked.

What to actually do with this

The practical finding is not "WordPress is insecure." It is that the failure mode nobody checks for is the plugin that was removed from the directory while still active on the site. Update counts look fine. The dashboard is quiet. There is no update, because there is no longer anything to update from.

Auditing for it is straightforward and almost nobody does it: take the active plugin list, query each slug against the WordPress.org API, and flag every 404. On a site carrying a few dozen plugins it takes minutes, and it is the single highest-yield check available. If a site matters commercially, that check belongs in a scheduled routine rather than in someone's memory — which is the substance of a WordPress maintenance and development engagement rather than a one-off scan.

Frequently asked questions

What are the most vulnerable WordPress plugins?

It depends entirely on whether you rank by advisory count or by advisories per install. By raw count, Happy Addons for Elementor and Tutor LMS lead with 36 advisories each. By advisories per million active installs, MasterStudy LMS and LA-Studio Element Kit lead at roughly 1,600. Only one plugin appears in both top tens, so the question has two different correct answers depending on what you are actually asking.

What happens if a WordPress plugin is removed from the directory?

Nothing happens to your site, which is the problem. Removal takes the plugin off WordPress.org so it can no longer be downloaded or updated. It does not deactivate the plugin, does not uninstall it, and does not notify sites running it. The plugin keeps running exactly as before and will never receive another security fix. In this dataset, 45.7% of Patchstack advisories name a plugin that has since been removed.

Which WordPress plugin categories are riskiest?

Membership and LMS plugins, at 70.4 advisories per million active installs — roughly thirty times the rate for security plugins, which come last at 2.31. Media and gallery plugins are second at 34.1, then page builders at 15.2. E-commerce sits mid-table at 12.6.

How many WordPress plugins are abandoned?

47.1% of plugins in the directory, 25,209 of them, have not shipped an update in two years. But they account for only 3.0% of active installs, so abandonment is overwhelmingly a long-tail phenomenon. The figure that matters is smaller and more specific: 693 abandoned plugins carry a published vulnerability advisory, across about 1.93 million active installs.

How can I check whether my WordPress plugins are still supported?

Query each plugin slug against the WordPress.org plugin API at api.wordpress.org/plugins/info/1.2/. A live plugin returns its metadata including the last-updated date; a removed one returns a 404. Flag every 404 as urgent and every plugin whose last update is more than two years old as a review candidate. Your dashboard will not tell you either of these things.

Want a professional site without the agency invoice?

Tell us about your project below and we'll reply within 24 hours with a clear, fixed quote, no surprises.

Prefer WhatsApp or email?