DEV Community

Shubham Chaudhary
Shubham Chaudhary

Posted on

wp2shell: Breaking Down WordPress's Critical Pre-Auth RCE (CVE-2026-63030)


A WordPress site doesn't need a single plugin installed to get hacked right now.

A newly disclosed vulnerability called wp2shell has changed the threat model for over 500 million WordPress websites. No login. No plugin. No user interaction. Just one crafted request to WordPress Core, and an attacker can walk away with admin access and full remote code execution.

What happened

On July 17, 2026, the WordPress security team shipped emergency releases — versions 7.0.2, 6.9.5, and 6.8.6 — to close a critical vulnerability chain. The bug lives in WordPress Core itself, not a third-party plugin or theme, which means the attack surface isn't determined by what extensions you've installed.

The technical chain

wp2shell is actually two chained CVEs:

CVE Type Description
CVE-2026-60137 SQL Injection Unauthenticated SQL injection in the author__not_in parameter of WP_Query. Present since WordPress 6.8.
CVE-2026-63030 REST API Route Confusion A batch-route confusion bug in /wp-json/batch/v1 that lets unauthenticated requests reach functionality normally gated behind login. Affects 6.9+.

The route confusion bug bypasses the auth check protecting the SQL injection, letting an attacker query the database directly — including tables holding admin password hashes. From there, cracking the hash and logging in as admin opens the door to a webshell via standard theme/plugin editor functionality.

Affected versions

  • 6.8.x — SQL injection only, fixed in 6.8.6
  • 6.9.0–6.9.4 — full RCE chain, fixed in 6.9.5
  • 7.0.0–7.0.1 — full RCE chain, fixed in 7.0.2

WordPress force-pushed this update via auto-update to affected sites — a step it rarely takes.

Why this matters for devs specifically

If you build on top of WordPress (custom plugins, headless setups, REST API integrations), this is a good moment to review how your own endpoints handle the batch API and authentication checks, not just wait on core patches.

Full breakdown

I wrote a complete technical walkthrough covering indicators of compromise, WAF mitigation rules, WP-CLI patch verification commands, and credential rotation steps here:

👉 Full wp2shell breakdown, IOCs, and patch guide

Has anyone here already checked their WordPress installs, or seen this being probed for in the wild?

Top comments (0)