Strategy

TL;DR: wp2shell (CVE-2026-63030 chained with CVE-2026-60137) matters because it is a core, pre-authentication RCE reachable on a stock, plugin-free install. That is the rare category. In 25 years, unauthenticated code execution against a bare WordPress install has happened only a handful of times. The overwhelming majority of WordPress mass compromise has ridden the plugin and theme supply chain and infrastructure abuse, not core. This post maps the history so you can see where wp2shell actually sits.

Why wp2shell is a big deal (and why it’s also not new)

On 17 July 2026, WordPress shipped 6.9.5 and 7.0.2 and took the unusual step of force-pushing them through the auto-update system. The reason was wp2shell: two core bugs that chain into pre-authentication remote code execution.

  • CVE-2026-63030 is a REST API batch-route confusion bug in /wp-json/batch/v1, introduced in 6.9.
  • CVE-2026-60137 is a SQL injection in the author__not_in parameter of WP_Query, reaching back to 6.8.

Discovered by Adam Kues at Assetnote (Searchlight Cyber’s attack-surface arm) and reported through WordPress’s HackerOne programme, the writeup states the attack has no preconditions and works against an anonymous user on a stock install with no plugins. With an estimated 500 million+ sites running WordPress, that is a very large exposure surface.

For CTI and detection work, the point that matters is this: core-level, unauthenticated, no-precondition RCE is the exception in WordPress history, not the rule. WordPress has been mass-exploited many times over 25 years, but almost always through third-party code or protocol abuse. Understanding that pattern tells you where to point your telemetry.

Category 1: Core-level events (the true wp2shell analogs)

These are rare. When they happen, they are ecosystem-wide.

WordPress 2.1.1 release backdoor (2007)

Not a code flaw but a supply-chain compromise. The wordpress.org download server was breached and a backdoor inserted directly into the release tarball (shell-command execution via tampered theme.php / feed.php). The first “download it and you’re owned” WordPress core event, and a reminder that the distribution channel is itself an attack surface.

REST API content injection: CVE-2017-1001000 (February 2017)

The closest historical parallel to wp2shell. A PHP type-juggling flaw in the wp-json/wp/v2/posts route let an unauthenticated attacker bypass the permission check and modify any post or page. Like wp2shell, it lived in core, needed no auth, and rode the then-new REST API that 4.7.0/4.7.1 had enabled by default.

  • Nearly 2 million sites were defaced within a few weeks.
  • Wordfence logged 800,000+ attacks in a 48-hour window and tracked around 20 competing defacement campaigns (the “Hacked by NG689Skw / w4l3XzY3” wave).
  • RCE was only reachable where a helper plugin such as Insert PHP or PHP Code Widget was present (300K+ combined installs at the time).

What makes wp2shell worse: 2017 was content injection leading to defacement and SEO spam by default, with code execution only as a conditional bonus. wp2shell delivers RCE straight from core.

XML-RPC / pingback abuse (2013-2014)

A class rather than a single CVE. The xmlrpc.php pingback function was abused for:

  • Reflected DDoS amplification
  • SSRF and internal port scanning
  • Credential-guessing amplification via system.multicall against wp.getUsersBlogs (hundreds of password attempts per request)

It effectively turned the entire WordPress install base into a reflection and brute-force resource.

The 2013 brute-force botnet (“Fort Disco”)

A coordinated campaign hammered wp-login.php across the internet from roughly 90,000 IPs, reported jointly by Sucuri, CloudFlare and major hosts. Credential-based rather than a vuln, but it is the archetypal mass, automated, WordPress-wide event that set the template everything since has followed.

Category 2: Plugin / theme supply-chain mass exploitations

This is where WordPress actually bleeds at scale. A flaw in one popular component instantly exposes hundreds of thousands to millions of sites, and owners frequently don’t even know the vulnerable code is bundled in their theme.

YearComponentCVE / refClassScale / impact
2011TimThumbCVE-2011-4106Remote file include to RCEBundled in thousands of themes/plugins; hundreds of thousands of sites; hit Matt Mullenweg’s own blog
2014RevSlider (Revolution Slider)n/aArbitrary file download/uploadBundled silently in premium themes; fed the SoakSoak campaign (100,000+ sites); behind the Panama Papers breach
2014MailPoet (wysija-newsletters)CVE-2014-4725Unauth file upload50,000+ sites infected (Sucuri)
2018WP GDPR ComplianceCVE-2018-19207Privilege escalationMass-exploited during the GDPR rush
2019Yuzo / Yellow Pencil / Social WarfaremultipleOption-update / stored XSSWave of malvertising-redirect compromises
2020WP File ManagerCVE-2020-25213Unauth RCE (elFinder)~700,000 installs; mass-exploited within days
2021Fancy Product DesignerCVE-2021-24370Unauth file uploadExploited in the wild pre-patch
2023Ultimate MemberCVE-2023-3460Privilege escalationActively exploited; admin account creation
2023Essential Addons for ElementorCVE-2023-32243Privilege escalation1M+ installs
2024LiteSpeed CacheCVE-2024-28000Privilege escalation~5M sites; 30,000+ attacks blocked in 24h
2024LiteSpeed CacheCVE-2024-44000Unauth account takeover~6M sites
2024Really Simple Security (fka Really Simple SSL)CVE-2024-10924Auth bypass (CVSS 9.8)4M+ sites; force-updated; “one of the most serious in 12 years” (Wordfence)
2025OttoKit / SureTriggersCVE-2025-3102, CVE-2025-27007Missing check / auth bypass~100K installs; exploited to create admin accounts
2026WordPress CoreCVE-2026-63030 + CVE-2026-60137Pre-auth core RCE (wp2shell)~500M sites in scope; force-updated

For scale context: roughly 8,000 new WordPress vulnerabilities were reported in 2024 alone, almost entirely plugins and themes.

Category 3: The monetisation layer (long-running injection campaigns)

The vulns above are the entry. These campaigns are what rides them at scale and turns access into money:

  • SoakSoak (2014): RevSlider-fed malware distribution.
  • VisitorTracker (2015): mass compromise funnelling victims to the Nuclear exploit kit.
  • WP-VCD (2017-2020): self-propagating malware spread through pirated (“nulled”) themes and plugins.
  • Balada Injector (2017-present): the long-tail benchmark. Tracked by Sucuri/GoDaddy, it opportunistically weaponises whatever the freshest plugin flaw is (tagDiv Composer, Elementor, Popup Builder and others) and has been credibly linked to 1 million+ compromises over its lifetime. It is the closest thing to a permanent, adaptive mass-exploitation machine aimed at WordPress.

Where wp2shell sits

The pattern across 25 years:

  1. Plugins and themes, not core, are the mass-exploitation surface.
  2. The recurring monetisation is defacement, SEO spam, malicious redirects, backdoors and admin-account creation.
  3. Core-level, unauthenticated, no-precondition RCE is the exception.

Within that exception, wp2shell is arguably the most severe instance yet:

  • 2007 was supply-chain tampering, not a reachable bug.
  • 2017 was content injection that only reached RCE with helper plugins.
  • wp2shell delivers RCE from an anonymous request against a stock install.

The mitigating factor this time is the forced auto-update push and the fact that a patch landed ahead of confirmed in-the-wild exploitation. That is the same playbook (force-update plus WAF the vulnerable route) that the Really Simple Security response validated in 2024.


Defensive takeaways

Patch state

  • Confirm you are actually on 6.9.5 / 7.0.2 / 6.8.6 (6.8.x needs 6.8.6 for the SQLi component only). Do not assume the forced push landed on sites with auto-updates disabled; verify the running version.

Temporary mitigations (until patched)

  • Block anonymous access to the REST batch endpoint: /wp-json/batch/v1 and ?rest_route=/batch/v1.
  • WAF the routes; Cloudflare has managed rules across all plans including free. Treat these as temporary, since some legitimate functionality relies on the batch endpoint.

Detection engineering focus

  • Alert on POST requests to /wp-json/batch/v1 and rest_route=/batch/v1 from unauthenticated sessions.
  • Hunt author__not_in in query strings and request bodies; it is the SQLi component’s tell.
  • Watch for new administrator account creation and unexpected wp-config.php / wp-content writes after the request, which is the consistent post-exploitation signal across nearly every campaign above.
  • Baseline your REST API traffic. The lesson of both 2017 and 2026 is that the REST surface is where core-level pre-auth flaws keep appearing; you want normal-vs-abnormal visibility on it before the next one drops.

Strategic posture

The historical record says the next mass-exploitation event is far more likely to be a million-install plugin than core. Inventory what plugins and themes you actually run (including silently-bundled dependencies, which is the RevSlider and TimThumb lesson), track them against a feed like Patchstack/Wordfence/WPScan, and treat “force-update capable” plugins as a standing risk-management line item.

References

  • Rapid7, ETR: CVE-2026-63030 (wp2shell)
  • BleepingComputer, WordPress Core “wp2shell” RCE flaws get public exploits
  • The Hacker News, New wp2shell WordPress Core flaw
  • SOCRadar, WordPress wp2shell (CVE-2026-63030): CISO FAQ
  • Sucuri / Wordfence / WP Tavern, REST API content injection (CVE-2017-1001000) coverage, Feb 2017
  • SecurityWeek / The Hacker News, Really Simple Security CVE-2024-10924
  • BleepingComputer, LiteSpeed Cache CVE-2024-28000 / CVE-2024-44000
  • SecurityWeek, OttoKit / SureTriggers exploitation, 2025
  • Patchstack, State of WordPress Security 2025

Human Me Summary

The above was generated with Opus 4.8, so let’s inject some human! (see I think WP2SHELL is much less a big deal and is just part of cyber life… because systems have vulns, code changes/new features etc. which create new vulns, and sometimes resurface old ones, not every mass exploitation is the end of the world…. and breaking news is a daily occurrence in the world!)

What does this tell us? It shows a number of things:

  1. defense in depth is greater than patch faster
  2. centralized WAF/CDNs can play a huge role
    • This is not me advocating for a global WAF, but you might think about WAF all the things and shared services, imagine if you had a UK GOV WAF… so you could protect all the public services at the point of ingress to give remediation time! that sounds rather sensible I think (clearly you might want dual providers and diversity etc. and really sensible management/deployment of rules!)
  3. this is not a new problem, but the stick WordPress gets is largely from it’s ecosystem not it’s core!
  4. Over 500 million sites reportedly use WordPress, shouting that people shouldn’t use it, is as useful as a chocolate teapot! We have to secure reality, not someone’s idea of perfection.

We really need people to stop thinking about point solutions and to understand how the world of technology and security fits together (this is called architecture.. it’s not new!)

This covers everything from ideas, planning, supply, deployment, testing, operation and everything in between! it also covers off the delta between a server just exposed to the internet vs one that has a CDN/WAF, HA, IPS, Monitoring, Backup etc.

If we want to become cyber safer as a society, we need better digital architecture, not to just ‘patch faster’ (but patching is still a part of the wider architectural picture!)