XSS2Shell: WordPress Flaw Actively Exploited – Update to 7.0.3 Now

Step by step
How the attack unfolded (XSS2Shell / CVE-2026-64638)
Click a phase for details – or let the animation play through.
PHASE 1/5 · Preparation & Social Engineering

The attacker hosts a malicious third-party site and uses social engineering to make a victim open a crafted link to the login page.

T1608 – Stage Capabilities T1204.001 – User Execution: Malicious Link T1566 – Phishing
  • Attacker-hosted malicious third-party site as trigger
  • Target URL is the publicly reachable wp-login.php
  • No WordPress account needed for the first step
  • Successful RCE escalation requires explicit victim interaction
PHASE 2/5 · Initial Access (Reflected XSS)

A parser discrepancy in input sanitization lets malicious JavaScript be reflected and executed in the WordPress site's origin.

T1190 – Exploit Public-Facing Application T1059.007 – Command and Scripting Interpreter: JavaScript
  • CVE-2026-64638, CVSS 8.9 (high), in WordPress core
  • Root cause: inconsistent filtering by wp_strip_all_tags()/strip_tags() and wp_kses_post()
  • Malformed HTML markup becomes effective as real DOM elements
  • Affected: all versions 4.7.0 to 7.0.2, fixed in 7.0.3
PHASE 3/5 · Credential Access

If an administrator is logged in, the injected code steals an Application Password (API access token).

T1528 – Steal Application Access Token
  • Prerequisite: a logged-in admin at the moment of the click
  • Theft of an Application Password for WordPress APIs
  • Executed within the site's trusted origin
PHASE 4/5 · Privilege Escalation & Execution (RCE)

Using the token, privileged functions are invoked, a malicious plugin archive is uploaded, and PHP code is executed on the server.

T1505.003 – Server Software Component: Web Shell T1059.004 – Command and Scripting Interpreter: PHP
  • Execution of privileged WordPress functions via the API
  • Upload of a manipulated plugin archive
  • PHP code execution in the context of the web server process
  • The name XSS2Shell describes the chain from XSS to shell
PHASE 5/5 · Impact & Active Exploitation

The chain leads to full server takeover; the flaw is already being exploited automatically and in the wild.

T1496 – Resource Hijacking
  • Full server takeover as the chain's end goal
  • Canadian Centre for Cyber Security (AV26-792): exploited in the wild
  • Imperva: automated targeting of 11,000+ websites across 67 countries
  • Figures are attack attempts/telemetry, not confirmed compromises
Short & clear answers
Frequently asked questions about this incident
Am I affected by the WordPress XSS2Shell flaw (CVE-2026-64638)?
Every WordPress installation before version 7.0.3 or before the patched version of your release branch (from 4.7 through 7.0.2) is affected. Because the flaw sits in the WordPress core, it doesn't matter which plugins or themes you use. You can find your running version in the backend under Dashboard > Updates.
What do I need to do right now to protect my website?
Update the WordPress core immediately to the patched version of your branch, preferably the latest supported version (7.0.3 was released on 6 August 2026). Create a verified, restorable backup of files and database before updating, and afterwards check the version number and timestamp. Updating is the only real remedy for the underlying XSS flaw.
Can my server be taken over without any action on my part?
No. According to WordPress's security advisory, escalation to code execution requires successful social engineering and explicit interaction by the victim, such as clicking a crafted link. It becomes especially critical if an administrator is logged in at the moment of the click. So this is not a click-free, unauthenticated server takeover.
How can I tell whether my site has already been attacked or compromised?
Check login, web server, WAF and REST logs for unusual POST requests to wp-login.php, suspicious REST calls and plugin upload events. One indicator noted by pwn.ai is login POSTs where the username field contains a URL-encoded less-than sign – this is a clue, not conclusive proof. Also look for unknown administrators, unexplained application passwords and new or modified files under wp-content/plugins/.
What should I do if I'm still running a very old WordPress version (4.6 or older)?
There is no fix for version 4.6 and older, unsupported installations. These must be migrated to a supported, patched version. Backports are available for all security-maintained branches back to version 4.7 (e.g. 4.7.34, 4.8.29, 4.9.30).
More security news
You might also be interested in
Critical Elementor Pro Flaw: Attackers Can Fully Take Over WordPress Sites
A file upload bug in Elementor Pro up to 4.2.1 allows RCE without login. Version 4.2.2 fixes the flaw – update now!
Pods Plugin: Critical Flaw Enables Admin Takeover, No Login
A critical flaw in the WordPress plugin Pods lets attackers overwrite admin passwords without login. Over 100,000 sites are affected.
miniOrange SAML SSO: Critical Bypass Turns Attackers Into Admins
Two critical auth bypasses in the miniOrange SAML SSO plugin allow forged SAML assertions—up to full WordPress admin access.