Call Us: +1-888-227-1645
The WordPress Core RCE Vulnerability: Here's What We Found

The WordPress Core RCE Vulnerability: Here's What We Found

Randy Hedglin

8 min read

WordPress vulnerabilities are a regular occurrence. Most of them live in plugins, affect specific configurations, or require some level of authentication to exploit. When our team flags something on a Friday night, that's usually the signal that something different is happening.

On July 17, 2026, Searchlight Cyber's security researcher Adam Kues disclosed a pre-authentication remote code execution vulnerability in WordPress core, dubbed wp2shell. No plugins required. No login required. A stock WordPress installation running an affected version was exploitable by an anonymous attacker.

WordPress.org released patches the same day. WP Engine initiated emergency core updates across their platform. We pulled the advisory, cross-referenced affected versions against our client environments, and started testing sites within hours of the disclosure.

This is the kind of vulnerability that warrants a direct read, not a summary.

What the Vulnerability Chain Actually Is

Two CVEs are involved, and understanding how they work together is what makes this disclosure significant.

The first, CVE-2026-60137, is an unauthenticated SQL injection vulnerability affecting WordPress core versions 6.8 through 7.0.1. It operates through the author__not_in parameter, which lacks sufficient escaping and SQL query preparation. An unauthenticated attacker can append additional SQL queries to extract sensitive information from the database. Wordfence rated this 7.5 High.

The second, CVE-2026-63030, is where the severity escalates to critical. It affects WordPress 6.9 through 7.0.1 via the REST API batch request endpoint at /wp-json/batch/v1. The vulnerability exploits a route and validation desynchronization that allows a validated sub-request to be dispatched to an unintended callback, bypassing the allow_batch restriction with attacker-controlled parameters and bypassing the target route's input sanitization. Chained with the SQL injection, this becomes unauthenticated remote code execution. Wordfence rated this 9.8 Critical.

The combination means an anonymous attacker can, in a single exploit chain, extract database contents and execute arbitrary code on the server. No authentication. No plugins. No special configuration required.

Who Is and Isn't Affected

The affected version range is specific and worth stating clearly.

Versions 6.9.0 through 7.0.1 are affected by both CVEs. Version 6.8.x is affected only by the SQL injection, not the RCE chain. Versions 6.8.5 and below are not affected by either. Sites running patched versions 6.8.6, 6.9.5, or 7.0.2 are not vulnerable.

Searchlight Cyber estimates over 500 million websites run WordPress. The subset running affected versions without the patch applied represents a meaningful attack surface, and given the severity of this vulnerability, exploitation attempts follow disclosure quickly. Patchstack's 2026 State of WordPress Security report puts the median time between vulnerability disclosure and active exploitation attempts at five hours. WordPress.org's same-day patch release closed that window almost immediately, but only for sites where the automatic update actually ran.

What Was Released the Same Day

The WordPress Security Team released patches on July 17, the same day as disclosure, and initiated automatic updates for sites running vulnerable versions. That response window matters: WordPress.org coordinated the disclosure and patch release simultaneously rather than allowing a gap between public knowledge and available remediation.

Wordfence Premium, Wordfence Care, and Wordfence Response customers received a firewall rule protecting against the RCE vulnerability on July 17. Wordfence Free users will receive the same protection on August 16. That's a 30-day gap. For organizations running Wordfence Free as their primary security layer on unpatched sites, that gap represents a specific and concrete exposure during one of the more actively exploited vulnerability windows in recent WordPress history.

Searchlight Cyber also released wp2shell.com, a free public tool to check whether a specific site is vulnerable. We used this as part of our initial fleet review the night the disclosure dropped.

How We Responded

Security events don't follow business hours, and the organizations best positioned to respond to a critical disclosure are the ones with monitoring in place that doesn't either.

When this came through on the evening of July 17, our team flagged it immediately. We pulled the Searchlight Cyber advisory, cross-referenced the affected version ranges against our client environments, and started testing sites that night using wp2shell.com. We confirmed that sites running behind application-aware firewalls were protected against the RCE chain even before patching completed. The firewall was blocking the batch endpoint exploit while WordPress.org's automatic updates were still propagating across the fleet.

Over the following days, we reviewed our full client fleet on WP Remote to confirm patch status. Firewalls handled the immediate exposure for most sites, but patch verification is never optional on a disclosure this severe. We found a small number of sites where automatic updates had not completed and intervened manually. That's exactly what centralized monitoring exists for.

What a Core Vulnerability Means Differently Than a Plugin Vulnerability

Plugin vulnerabilities dominate the WordPress security conversation, and for good reason. Patchstack's 2026 State of WordPress Security report documented 11,334 vulnerabilities in the WordPress ecosystem in 2025, with 91% originating in plugins. The core software itself has historically been a much smaller attack surface.

CVE-2026-63030 is a reminder that core vulnerabilities exist and that when they occur, their scope is categorically different. A plugin vulnerability affects sites running that specific plugin. A core vulnerability affects every WordPress installation running an affected version. The blast radius is measured in millions of sites, not thousands.

That scale changes the calculus. When a critical plugin vulnerability drops, the question is whether your site runs that plugin. When a critical core vulnerability drops, the question is whether your site is patched. Every unpatched WordPress site in the affected version range is exposed, regardless of what plugins are or aren't installed.

2026 Has Been a Significant Year for WordPress Infrastructure Risk

This RCE chain is the third major security event affecting WordPress infrastructure in 2026 worth examining as a pattern rather than isolated incidents.

In April, the Essential Plugin supply chain attack compromised 30 plugins through a single Flippa acquisition. A buyer with a background in SEO and online gambling marketing purchased a legitimate eight-year-old plugin business, planted a backdoor in the first code commit, and let it sit dormant for eight months before activating it across hundreds of thousands of sites. The attack exploited the trust WordPress.org places in established plugin authors without any mechanism to review ownership transfers.

The WPackagist acquisition in March raised related governance questions about who controls critical developer infrastructure and what happens to that infrastructure if the steward runs into financial or legal trouble. Ben Word from Roots.io flagged this directly: tooling this central to professional WordPress workflows probably shouldn't be owned by a single private-equity backed company, regardless of their intentions.

And now a 9.8 Critical RCE chain in WordPress core itself, exploitable by an anonymous attacker with no plugins and no special configuration required.

The pattern isn't that WordPress is uniquely insecure. Every platform at this scale has vulnerabilities. The pattern is that the attack surface for widely deployed open source infrastructure is large, actively targeted, and requires ongoing operational attention rather than periodic checkups. The sites that handled each of these events well were the ones with active monitoring already in place. The ones still dealing with consequences found out after the fact.

The Specific Mitigations Worth Knowing

If patching to 6.8.6, 6.9.5, or 7.0.2 is not immediately possible for any site, two emergency temporary measures reduce exposure.

Blocking anonymous access to the REST API entirely prevents the batch endpoint from being reached by unauthenticated requests. This can affect legitimate site functionality depending on how the REST API is used, so it should be treated as a temporary measure rather than a permanent configuration.

Blocking the specific endpoint paths /wp-json/batch/v1 and ?rest_route=/batch/v1 at the WAF level is more targeted and less likely to affect other functionality. Again, temporary until patching is complete.

Both options are emergency measures. The correct resolution is patching. Everything else buys time.

What This Means for WordPress's Architectural Direction

Something worth naming directly: CVE-2026-63030 exploited the WordPress REST API batch endpoint. WordPress 7.0's new AI framework, the Connectors API and WP AI Client, is built on the same REST API layer. As WordPress becomes more API-dependent, adding AI integrations, headless implementations, and third-party connectivity, the REST API attack surface expands rather than contracts.

This isn't an argument against WordPress's AI direction. The framework is well-designed and the governance controls are meaningful. It's an observation that the same architectural openness that makes WordPress extensible makes it a persistent target. The answer isn't to avoid the REST API. It's to treat every layer that depends on it as part of the security posture, not an afterthought to it.

How Curious Minds Can Help

Verifying patch status across a WordPress fleet is straightforward when the infrastructure is in place to do it. For organizations managing WordPress sites across multiple environments without centralized monitoring, that verification is often harder than it should be.

Security at Curious Minds means continuous monitoring and the ability to respond when something like this surfaces on a Friday night. If you're not sure whether your WordPress sites are running patched versions, that's a question worth answering today rather than after something goes wrong.

From the blog

Latest Articles

Let's build something amazing together

Give us a ring and let us know how we can help you reach your goals. Or if you'd like, start a chat. We're usually available 9-5 EST. We try to respond to every inquiry within one business day.

Phone number
+1-888-227-1645

Technologies and services we work with:

Laravel Laravel
WordPress WordPress
React ReactJS
EmberJS EmberJS
woocommerce WooCommerce
next.js NextJS
gatsby Gatsby
Shopify Shopify
VueJs VueJS
contentful Contentful
next.js JAMStack
gatsby Laravel Jigsaw
WPEngine WP Engine
Laravel Livewire Laravel Livewire
Netlify Netlify