A severe vulnerability has been identified within the core of WordPress, allowing an anonymous HTTP request to execute arbitrary code on affected websites. This critical flaw, dubbed "wp2shell" by its discoverers, resides in the WordPress core, meaning even a fresh installation with no plugins is immediately exploitable. The widespread nature of WordPress, powering over 500 million websites globally, underscores the immense potential impact of this discovery, prompting an urgent response from the WordPress security team.
Unpacking the ‘wp2shell’ Vulnerability
The vulnerability, a pre-authentication Remote Code Execution (RCE), represents one of the most dangerous types of security flaws. "Pre-authentication" signifies that an attacker does not need any login credentials, session cookies, or prior access to the system to trigger the exploit. An anonymous, unauthenticated request is sufficient. "Remote Code Execution" means the attacker can run their own code on the target server, granting them extensive control, potentially leading to full compromise of the website, data theft, or further infiltration into the server environment. The fact that this bug is in "core" means it’s not tied to a specific plugin or theme, but rather to the fundamental architecture of WordPress itself, making virtually all sites running vulnerable versions susceptible.
The flaw was identified by Adam Kues, a security researcher at Assetnote, the attack surface management division of Searchlight Cyber. Kues responsibly disclosed the vulnerability through WordPress’s official HackerOne bug bounty program, a crucial mechanism for encouraging ethical hackers to report weaknesses before malicious actors can exploit them. Searchlight Cyber has published an initial writeup, referring to the attack as "wp2shell," emphasizing its capability for shell access. The firm explicitly stated that the attack has "no preconditions and can be exploited by an anonymous user," highlighting the simplicity and potency of the exploit.
Rapid Response: Emergency Patches and Forced Updates
In an expedited response to this critical threat, WordPress released security updates 6.9.5 and 7.0.2 on July 17, 2026. These patches are designed to close the pre-authentication RCE loophole that could be triggered by an anonymous request against default installations. The vulnerability primarily affected sites running WordPress versions 6.9 and 7.0. Specifically, every site within these version ranges was at risk until the patches were deployed.
In a move reflecting the severity of the vulnerability, WordPress activated its "forced updates" mechanism through its auto-update system. This feature, typically reserved for highly critical security issues, aims to rapidly propagate the fixes to as many installations as possible without requiring manual intervention from site administrators. While WordPress’s auto-update system has been a significant step forward in securing the vast ecosystem, the use of "forced updates" underscores the urgency of this particular threat.
However, a critical question remains for administrators: whether these forced updates successfully reach sites where auto-updates have been explicitly disabled by the owner. WordPress has not yet clarified this point, leaving many administrators to verify their current running versions manually. Security experts universally recommend against assuming the patch has landed and advise actively checking the installed version to ensure the fixes are in place.
Beyond the immediate RCE fix, WordPress also rolled out version 6.8.6, which addresses a separate, second SQL injection bug reported by a different research team in the same patching cycle. Additionally, the fix for the RCE has been integrated into the 7.1 beta2 release, ensuring future stability for upcoming versions.

Strategic Withholding of Technical Details
Assetnote and Searchlight Cyber have made the strategic decision to withhold full technical details of the vulnerability for the time being. This common practice in responsible disclosure aims to provide administrators with a critical window to apply patches before attackers can weaponize detailed exploit information. Instead of a deep technical dive, Searchlight Cyber has launched a dedicated online checker tool at wp2shell.com, allowing site owners to test their own WordPress instances for susceptibility to the "wp2shell" vulnerability. This approach prioritizes immediate defense over public academic analysis, granting defenders a much-needed head start in the race against potential attackers.
WordPress’s Characterization of the Flaw
While the research firm has been circumspect about technical specifics, WordPress itself has offered a slightly more detailed, albeit still high-level, description of the vulnerability. The official release post for WordPress 7.0.2 describes Kues’s finding as "a REST API batch-route confusion and SQL injection issue leading to Remote Code Execution." This description points to a complex interaction between two distinct vulnerabilities: a "batch-route confusion" within the REST API and a "SQL injection." The combination of these issues culminates in the devastating RCE capability.
The release covers two distinct flaws: one critical and one high-severity. WordPress has not publicly specified which designation applies to which vulnerability, though the RCE is undoubtedly the critical one given its impact. The version page for 7.0.2 lists three files that were modified to implement the fixes: /wp-includes/rest-api/class-wp-rest-server.php, /wp-includes/class-wp-query.php, and /wp-includes/rest-api.php. These files are central to WordPress’s REST API functionality and database querying, confirming the nature of the reported flaws.
The WordPress REST API and the Batch Endpoint
The WordPress REST API, introduced in full with version 4.7 in December 2016 and further developed with features like the batch endpoint in version 5.6 (November 2020), serves as a programmatic interface for interacting with WordPress sites. It allows external applications, mobile apps, and even internal components to fetch and manipulate data, publish content, and manage various aspects of a site without directly accessing the admin dashboard. The "batch endpoint" specifically allows multiple API requests to be sent and processed in a single HTTP request, improving efficiency for applications that need to perform several operations simultaneously.
The description "batch-route confusion" suggests an issue where the REST API incorrectly interprets or routes requests sent via the batch endpoint, potentially allowing an attacker to bypass security checks or access unauthorized functions. When combined with a "SQL injection," which allows attackers to interfere with the queries an application makes to its database, the resulting RCE becomes possible. An attacker could, for example, inject malicious SQL to modify database entries in a way that facilitates code execution, or leverage the route confusion to direct a malicious payload to an unexpected execution path. What exactly changed in WordPress 6.9 to expose this vulnerability, given the batch endpoint’s long-standing presence since 5.6, remains an open question for security researchers once technical details are fully released. It could involve subtle changes in request parsing, new features interacting with the API, or modifications to input validation logic that inadvertently created this dangerous synergy.
Absence of Standard Identifiers and its Implications
As of July 18, the "wp2shell" vulnerability has not been assigned a Common Vulnerabilities and Exposures (CVE) identifier or a Common Vulnerability Scoring System (CVSS) score. The absence of these standardized identifiers presents a challenge for the broader cybersecurity community. CVE IDs are crucial for uniquely identifying and cataloging publicly known cybersecurity vulnerabilities, enabling organizations to track, communicate about, and manage risks effectively. CVSS scores provide a quantitative measure of a vulnerability’s severity, helping organizations prioritize remediation efforts.

Without a CVE ID, automated security scanners and vulnerability management platforms that rely on these identifiers will not be able to detect the "wp2shell" flaw. This means organizations cannot simply run their standard scans and expect to flag this critical issue. Furthermore, the U.S. Cybersecurity and Infrastructure Security Agency (CISA) requires a CVE before it can add a vulnerability to its Known Exploited Vulnerabilities (KEV) Catalog, which lists vulnerabilities that have been actively exploited in the wild and for which federal agencies are mandated to patch within specific timelines. Consequently, until a CVE is issued, tracking this vulnerability must rely solely on WordPress version numbers, demanding a more proactive and manual approach from administrators.
Mitigation Strategies for Unpatched Systems
For organizations unable to immediately update their WordPress installations, Searchlight Cyber has provided several stopgap mitigation strategies, all centered on preventing anonymous access to the REST API’s batch endpoint. While these are temporary measures and not a substitute for patching, they can buy critical time. The three suggested options, though not fully detailed in the original report, typically involve:
- Web Application Firewall (WAF) Rules: Implementing WAF rules to block or filter requests targeting the
/wp-json/batch/v1endpoint, especially those from unauthenticated users or suspicious IP addresses. - Server-Level Access Restrictions: Configuring server settings (e.g., using
.htaccessfiles for Apache or Nginx configurations) to deny access to the batch endpoint for unauthenticated users. - Disabling REST API Routes: Potentially using WordPress filters or plugins to disable specific, vulnerable REST API routes or endpoints, though this carries a higher risk of breaking legitimate site functionality or integrations.
All these mitigations carry the risk of disrupting legitimate integrations or features that rely on the batch endpoint, particularly if third-party services or plugins utilize it. Therefore, careful testing is essential before implementing any such temporary fixes.
The Broader Threat Landscape and Lessons Learned
The "wp2shell" vulnerability emerges against a backdrop of an increasingly professionalized and active mass exploitation landscape targeting WordPress. The immense popularity of the platform makes it a prime target for attackers seeking to compromise a large number of sites with minimal effort. Recent events, such as the WP-SHELLSTORM crew’s compromise of over 17,000 sites through a caching-plugin flaw (which was already public and patched, only working on a non-default setting), underscore the persistent threat. Attackers often leverage previously disclosed vulnerabilities, relying on the slow patching cycles of many administrators.
The rapid response to "wp2shell" draws parallels with the swift exploitation of a similar anonymous SQL injection vulnerability in Drupal core earlier this year (CVE-2026-9082). In that instance, Searchlight Cyber itself published a "same-day teardown" with two working proofs of concept almost immediately after Drupal released its patch. This incident serves as a stark reminder of how quickly public patches can be reverse-engineered by both ethical researchers and malicious actors to develop functional exploits. The "open-source bind" is a fundamental challenge: when a fix is released for open-source software, the changes themselves often provide a roadmap to the underlying vulnerability. The only remaining leverage for defenders is the speed at which the patch can be deployed across the vast install base before attackers can weaponize the disclosed information.
WordPress pulled that lever on Friday, initiating forced updates. The effectiveness of this measure will be determined by two key metrics: the volume of traffic directed at the /batch/v1 endpoint (indicating attacker activity) and WordPress’s internal version statistics (showing patch adoption rates). Historically, only the former tends to make headlines, emphasizing the critical role of proactive defense.
The "wp2shell" vulnerability is a sobering reminder of the continuous arms race in cybersecurity. While no exploitation attempts had been reported as of July 18, the lack of a CVE and public signature means that many may not even be looking for it yet. Web administrators, hosting providers, and cybersecurity professionals must remain vigilant, prioritize immediate patching, and actively monitor their WordPress installations for any signs of compromise. The future of millions of websites hinges on the rapid and thorough implementation of these critical security updates.
