WordPress 7.0.3: Pre-Auth XSS (CVE-2026-64638) Enables Code Execution

Step by step
How the XSS2Shell attack unfolded
Click a phase for details – or let the animation play through.
PHASE 1/6 · Initial Access

The attacker exploits the pre-authenticated reflected XSS in the publicly accessible WordPress login.

T1190 – Exploit Public-Facing Application
  • CVE-2026-64638, CVSS 8.9 (High) in wp-login.php
  • No user account required – fully pre-authenticated
  • A single failed login attempt is sufficient
  • Affects all versions 4.7.0 to 7.0.2, ~500M websites
PHASE 2/6 · Defense Evasion

A parser discrepancy between two filter functions allows bypassing HTML sanitization.

T1211 – Exploitation for Defense Evasion
  • wp_strip_all_tags() ignores tags with a space after the bracket
  • wp_kses_post() interprets the same constructs as valid tags
  • Malicious elements slip into the login error page
  • Standard WAFs block only ~26% of WordPress-specific attacks
PHASE 3/6 · Execution

A logged-in admin is lured via social engineering to click, executing attacker JavaScript in the WordPress origin.

T1059.007 – JavaScript T1204.001 – Malicious Link
  • Crafted link sent to logged-in administrator (e.g. via spoofed email)
  • DOM clobbering overwrites the ajaxurl variable in user-profile.js
  • REST-JSONP request to attacker server, response executed as JS
  • Reflected XSS – targeted attack, not self-spreading stored XSS
PHASE 4/6 · Privilege Escalation

Via Same Origin Method Execution the attacker generates an Application Password in the admin's context.

T1078 – Valid Accounts T1098.001 – Additional Cloud Credentials
  • Technique: Same Origin Method Execution (SOME)
  • An API access key (Application Password) is created in the background
  • The attacker obtains valid admin credentials for the REST API
PHASE 5/6 · Persistence & Code Execution

Using the Application Password the attacker uploads a malicious plugin and achieves full remote code execution.

T1505.003 – Web Shell T1059 – Command and Scripting Interpreter
  • Upload of a malicious plugin as a ZIP file
  • PHP files directly callable via the web directory (web shell)
  • Result: full remote code execution (RCE) on the server
  • Complete XSS2Shell chain by pwn.ai
PHASE 6/6 · Impact

The attacker gains full server control including access to the database and personal data.

T1005 – Data from Local System T1486 – Data Encrypted for Impact
  • Access to the database and wp-config.php
  • All personal data of customers and users at risk
  • GDPR breach notification under Art. 33 (72 hours) may apply
  • Median time-to-exploit in the WP ecosystem: only 5 hours
Short & clear answers
Frequently asked questions about this incident
Am I affected by the WordPress vulnerability CVE-2026-64638?
All WordPress versions up to and including 7.0.2 are affected, with the flaw tracing back to version 4.7 – meaning virtually every WordPress installation is at risk. To check your version, log into the backend and go to 'Dashboard → Updates', or use the WP-CLI command 'wp core version'. If your version is lower than 7.0.3 (or the patched version of your branch, such as 6.9.6), you are affected.
What should I do right now to protect my website?
First, create a backup of your database and files, then immediately update to WordPress 7.0.3 or the patched version of your branch. Instruct all administrators not to click unexpected login or password-reset links, as this is exactly what the attack chain relies on. Additionally, consider using a Web Application Firewall and disabling the file editor by adding 'define('DISALLOW_FILE_EDIT', true);' to your wp-config.php.
How dangerous is the flaw really if an attacker needs no account?
The entry point (reflected XSS) is exploitable without login and is triggered by a single failed login attempt. However, full server takeover (Remote Code Execution) requires a logged-in administrator to be tricked via social engineering into clicking a crafted link. Unlike stored XSS, the attack does not spread on its own – it is a targeted attack, not an automatic drive-by, yet experts still rate the overall risk as high with a CVSS score of 8.9.
Is a firewall (WAF) enough, or do I still need to install the update?
A Web Application Firewall such as Patchstack or Wordfence is a useful additional layer of protection, but it is not a substitute for the update. According to Patchstack, standard WAFs block only 26 percent of WordPress-specific attacks on average. The patch itself remains the most important and effective measure.
Do I have to report an incident to the data protection authority (GDPR)?
If the attack chain is successfully exploited, the attacker gains full control of the server and access to all personal data in the database. Such a data breach must be reported to the competent supervisory authority without undue delay under Article 33 GDPR, and no later than 72 hours after becoming aware of it. If there is a high risk to affected individuals, you must also inform them under Article 34 GDPR – and the website operator remains responsible even if technical maintenance is outsourced.
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.