As reported by The Hacker News, a critical unauthenticated remote code execution vulnerability — tracked under the identifier wp2shell — has been disclosed in WordPress core, affecting every installation running versions 6.9 and 7.0 prior to last Friday's emergency patch releases. This is not a plugin issue, a theme issue, or a misconfiguration story. This is the core engine itself, and that distinction changes everything about how defenders should respond.
Vulnerability at a Glance
- Vulnerability Name
- wp2shell
- Affected Vendor
- WordPress (Automattic / WordPress.org)
- Affected Versions
- WordPress 6.9.x (prior to 6.9.5), WordPress 7.0.x (prior to 7.0.2)
- Vulnerability Type
- Unauthenticated Remote Code Execution (RCE)
- Authentication Required
- None — exploitable via anonymous HTTP request
- Patched Versions
- WordPress 6.9.5 and 7.0.2 (released Friday via forced auto-update)
- Discovered By
- Adam Kues, Assetnote (Searchlight Cyber)
- Active Exploitation
- Not confirmed at time of writing — but given the disclosure and ease of exploitation, this window is extremely narrow
Why This Is Exceptionally Dangerous
The cybersecurity community deals with WordPress plugin vulnerabilities almost weekly — they're serious, but their blast radius is constrained by adoption rates of specific plugins. A core RCE is categorically different. WordPress powers an estimated 43% of all websites on the internet. A zero-authentication trigger on a vanilla install means there is no hardening configuration, no plugin removal, and no WAF rule set that fully substitutes for patching. Any unpatched WordPress 6.9 or 7.0 site — regardless of its security posture otherwise — is a potential foothold.
The fact that Adam Kues at Assetnote identified this through attack surface management research is a reminder that adversaries are running the same reconnaissance workflows. The question isn't whether threat actors are aware of this class of vulnerability — it's how quickly automated scanning campaigns will pivot to fingerprint and exploit unpatched instances at scale.
A bare WordPress install with no plugins, no custom themes, and no third-party integrations is fully exploitable. This is as wide as a WordPress vulnerability gets.
Who Is Most at Risk
The Auto-Update Question
WordPress's decision to enable forced updates through its auto-update system is the right call for the vast majority of the install base, and defenders should not fight it in this instance. However, organizations that have locked down auto-updates for compliance or change-management reasons need to treat this as an emergency change request — not a standard patch cycle item. The risk calculus of delaying this patch far outweighs the operational risk of an unplanned update.
Shield53 Recommendations — Immediate Actions
Within the Next 24 Hours
- Verify patch status immediately: Log into wp-admin and confirm your version is 6.9.5 or 7.0.2. Do not assume auto-update succeeded — verify it manually, especially on hosting environments with customized update configurations.
- Audit your full WordPress inventory: If your organization runs multiple WordPress instances (staging, dev, microsites), enumerate every one and confirm patch status across all of them.
- Review web server and WAF logs for anomalous POST requests to core WordPress endpoints from the past 72 hours. Look for unexpected process spawning, file creation in
wp-content, or outbound connections from the web server process. - Rotate credentials and API keys stored in
wp-config.phpand site environment variables as a precautionary measure, particularly for high-value installations.
Near-Term Hardening
- Deploy or tune your WAF to flag and block requests matching known wp2shell exploit patterns as signatures emerge from the research community.
- Implement file integrity monitoring on WordPress core files to detect unauthorized modifications post-exploitation.
- Establish a formal WordPress asset inventory process — if you don't know every WordPress instance you're running, you cannot defend it.
- Review your auto-update policy. For security-critical core updates, the operational risk of delayed patching almost always exceeds the risk of accepting forced updates.
The researcher responsible for this disclosure, Adam Kues at Assetnote, has done the community a service by reporting through responsible channels. The coordinated patch release is exactly how this process should work. Now the burden shifts entirely to defenders: the patch exists, it's being pushed, and the only remaining variable is whether your organization acts before opportunistic actors do.