Full Report
WordPress has released security updates to address the wp2shell vulnerability, a critical flaw that allowed attackers to achieve remote code execution (RCE) on vulnerable sites using a single anonymous web request. Unlike many previous attacks, this issue did not require plugins, authentication, or third-party code, making affected core installations particularly vulnerable. Security patches were released in WordPress 6.9.5 and 7.0.2. wp2shell Vulnerability Exposed Core WordPress Sites Tracked as CVE-2026-63030, the wp2shell vulnerability is described in the official WordPress release notes as a "REST API batch-route confusion and SQL injection" issue that can result in remote code execution. The flaw originates from the REST API batch endpoint located at /wp-json/batch/v1, or its legacy query-string alias ?rest_route=/batch/v1, allowing exploitation through a single anonymous web request. The vulnerability was discovered by Adam Kues of Assetnote, an attack surface management division of Searchlight Cyber, through the WordPress HackerOne programme. To provide defenders time to update their systems, Searchlight Cyber intentionally withheld technical exploitation details, stating, "Given the egregious nature of the flaw and to ensure defenders have adequate time, we are refraining from disclosing technical specifics at this juncture." Second SQL Injection Flaw Patched The same security release also fixed CVE-2026-60137, another critical SQL injection vulnerability. WordPress credited researchers TF1T, dtro, and haongo for reporting the issue. Unlike the wp2shell vulnerability, this flaw predates the latest release and was backported to WordPress 6.8.6. The wp2shell vulnerability only affects versions 6.9.0 to 6.9.4 and 7.0.0 to 7.0.1. Severity ratings differ across security advisories. While WordPress classifies CVE-2026-63030 as "high severity," the corresponding GitHub Security Advisory (GHSA-ff9f-jf42-662q) labels it as Critical with a CVSS score of 7.5. Regardless of classification, both vulnerabilities require immediate patching because the wp2shell vulnerability can be exploited without authentication. Immediate Updates Recommended Powering around 40% of websites, WordPress responded by enabling forced automatic updates for affected versions, including WordPress 7.1 beta2, to secure pre-release installations. As of 17 July, there were no confirmed reports of active exploitation. However, security researchers warned that because WordPress is open source and patch-related code changes became publicly available immediately, proof-of-concept exploits could emerge within hours. Administrators should verify that every internet-facing WordPress installation has successfully received the update, as some hosting environments disable automatic updates or lock websites to specific versions. Site owners can also check exposure using the public tool available at wp2shell.com. If immediate patching is not possible, temporarily blocking both REST API batch endpoints at the Web Application Firewall (WAF) level can reduce risk, although this should not replace installing the official update. Security teams managing multiple WordPress websites should also monitor for spikes in anonymous web request traffic targeting batch endpoints, as the wp2shell vulnerability demonstrates how overlooked core features can introduce severe security risks.
Analysis Summary
# Vulnerability: wp2shell (Critical WordPress Core RCE)
## CVE Details
- **CVE ID:** CVE-2026-63030
- **CVSS Score:** 7.5 (High per WordPress / Critical per GHSA-ff9f-jf42-662q)
- **CWE:** REST API batch-route confusion and SQL injection leading to RCE
## Affected Systems
- **Products:** WordPress Core
- **Versions:** 6.9.0 to 6.9.4 and 7.0.0 to 7.0.1
- **Configurations:** All internet-facing installations using affected versions; no specific plugins or third-party code required.
## Vulnerability Description
The "wp2shell" vulnerability is a critical flaw within the WordPress REST API batch endpoint. It stems from a "batch-route confusion" combined with a SQL injection vulnerability. Specifically, the flaw resides in the `/wp-json/batch/v1` endpoint (or its legacy query-string alias `?rest_route=/batch/v1`). An attacker can exploit this logic to execute arbitrary code (Remote Code Execution) on the underlying server.
## Exploitation
- **Status:** Not exploited (No confirmed reports as of July 17), but PoC development is expected to be imminent.
- **Complexity:** Low (Can be triggered via a single web request).
- **Attack Vector:** Network (Remote, unauthenticated).
## Impact
- **Confidentiality:** High (Full system access via RCE)
- **Integrity:** High (Ability to modify site core and database)
- **Availability:** High (Ability to disrupt service or take over the server)
## Remediation
### Patches
WordPress has released official security updates and forced automatic updates for many installations:
- **WordPress 6.9.5**
- **WordPress 7.0.2**
- **WordPress 7.1 beta2** (for pre-release installations)
### Workarounds
- **WAF Filtering:** Temporarily block traffic to the REST API batch endpoints: `/wp-json/batch/v1` and `?rest_route=/batch/v1`.
- *Note:* This is a temporary measure and does not replace the necessity of the official patch.
## Detection
- **Indicators of Compromise:** Monitor web server logs for a sudden spike in anonymous (unauthenticated) traffic targeting `/wp-json/batch/v1` or `?rest_route=/batch/v1`.
- **Detection methods and tools:**
- Verify WordPress version via the admin dashboard or `wp-includes/version.php`.
- Use the public exposure check tool at `hxxps[://]wp2shell[.]com`.
## References
- **WordPress Release Notes:** (See official WordPress.org news)
- **GitHub Security Advisory:** `hxxps[://]github[.]com/advisories/GHSA-ff9f-jf42-662q`
- **Secondary CVE (Fixed in same release):** CVE-2026-60137 (SQL Injection affecting WordPress 6.8.6 and higher).