Threat Intel

Yesterday afternoon/early evening a patch for WordPress was released (7.0.2) which address two vulnerabilities which are named: WP2SHELL. This is a fast post (largely generated by Claude Opus) to provide some detail. For reference in our research we have found ~20% of WordPress sites still vulnerable as of a few hours ago (based on a sample), so this is a live scenario and it would be strongly advisable for organisations to take appropriate steps. This morning I’ve built a docker lab of a vulnerable WordPress site and demonstrated hash theft and web shell deployment to a vulnerable lab instance.

I’ve put some resources for people (use at own risk) into a repo: https://github.com/mr-r3b00t/wp2shell/

that includes a scanner, some info on the vulns and a PoC tool!

TL;DR

On 17 July 2026, WordPress shipped 7.0.2 — a security release that patches two vulnerabilities, including the pre-authentication RCE chain nicknamed wp2shell. It was pushed with forced automatic updates across every affected branch. If you run WordPress, the guidance is blunt: update immediately, and verify you’re actually on a patched version.

What it fixes

Two issues, both in core:

  1. Facilitated SQL injection — CVE-2026-60137 (GHSA-fpp7-x2x2-2mjf). Credited to TF1T, dtro, and haongo.
  2. REST API batch-route confusion + SQL injection → Remote Code Execution — the wp2shell bug, CVE-2026-63030 (GHSA-ff9f-jf42-662q). Credited to Adam Kues at Assetnote / Searchlight Cyber.

Chained together, these give an unauthenticated attacker code execution on a default WordPress install.

Who’s affected and what to run

BranchStatus
7.0.2Fixes both vulnerabilities ✅
6.9.5Fixes both vulnerabilities ✅
6.8.6Fixes the first (SQLi) only ⚠️
7.1 beta 2Contains fixes for both ✅
Prior to 6.8Unaffected

Because 6.8.6 only carries the SQLi fix, sites on the 6.8 branch that need protection from the RCE chain should move onto a fully-patched branch.

How to update

  • Dashboard: Updates → apply 7.0.2.
  • Manual: download 7.0.2 directly from WordPress.org.
  • Automatic: background updates were forced on compatible sites — but don’t assume; confirm the running version.

Timeline

DateEvent
Prior to releasewp2shell (CVE-2026-63030) reported by Adam Kues (Assetnote/Searchlight Cyber) via WordPress’s HackerOne; SQLi (CVE-2026-60137) reported by TF1T, dtro, and haongo
17 Jul 2026WordPress 7.0.2 released — security release patching both CVEs; backports shipped as 6.9.5 and 6.8.6 (SQLi only); fixes also in 7.1 beta 2
17 Jul 2026Forced auto-updates enabled through the auto-update system across affected branches
18 Jul 2026No confirmed in-the-wild exploitation reported; full technical details held back to give defenders time to patch

Release credits

  • Release leads: John Blackbourn and Barry Abrahamson
  • Contributors: 16+ named contributors, plus representatives from major hosting and technology companies
  • Security reporters: TF1T, dtro, haongo (SQLi); Adam Kues, Assetnote/Searchlight Cyber (REST/RCE)

Why it matters for defenders

  • This is a forced-update event, not a routine point release. WordPress rarely compels updates — that alone signals severity.
  • “Auto-update handled it” is a hypothesis, not a fact. Verify versions across every site you own; sites with auto-updates disabled, or stuck on 6.8.6, are the gap.
  • Patch closes the door — it doesn’t clean the house. If a site sat exposed before updating, treat it as a potential incident: hunt for webshells, unexpected admin users, and anomalous batch/v1 traffic, then rotate secrets.

References

CVE-2026-63030: wp2shell — Rapid7

WordPress 7.0.2 Release — WordPress.org News

wp2shell: Pre Authentication RCE in WordPress Core — Searchlight Cyber

https://blog.cloudflare.com/wordpress-vulnerabilities

oh and Andy wrote a cool deep dive and scanner too (nice one)! https://blog.zsec.uk/wp2shell-code-trace-deep-dive/

I’ll try and update more later (with a more human touch!)