
Threat Advisory · Vulnerability Report
WordPress has patched CVE-2026-64638, nicknamed XSS2Shell, a pre-authentication reflected cross-site scripting vulnerability in the WordPress Core login screen. Unauthenticated attackers can trigger JavaScript execution in the trusted origin of an affected WordPress site, enabling credential harvesting, session theft, and a documented escalation path to server-side PHP code execution.
2026227
Admiralty Code A1
Published Aug 10, 2026
CVE-2026-64638
CWE-79
Product: WordPress Core
TA2026227A1CVE-2026-64638CWE-797.0.301 · Overview
WordPress has patched CVE-2026-64638, nicknamed XSS2Shell, a pre-authentication reflected cross-site scripting flaw in the WordPress Core login screen. First seen on July 26, 2026, the immediate consequence of CVE-2026-64638 is unauthenticated JavaScript execution in the trusted origin of an affected WordPress site. This permits credential harvesting presented on a legitimate hostname, theft of session material, and arbitrary same-origin requests issued in the victim's security context.
| CVE | Name | Affected Product |
|---|---|---|
CVE-2026-64638 |
XSS2Shell (WordPress Core Pre-Auth Reflected Cross-Site Scripting Vulnerability) | WordPress Core |
02 · Technical Breakdown
WordPress has remediated the CVE-2026-64638 flaw, named XSS2Shell, a pre-authentication reflected cross-site scripting vulnerability in the WordPress Core login interface. The flaw resides in the handling of the username value submitted in a failed login attempt at wp-login.php.
What distinguishes CVE-2026-64638 from a routine reflected XSS finding is a publicly documented escalation path that terminates in server-side PHP execution. The root cause is a parser disagreement between two sanitization routines applied in sequence to the same value: attacker-controlled markup survives the first routine as inert text and is then promoted to live HTML elements by the second.
Exploitation requires no account, no session, and no prior knowledge of the target. A single failed login attempt is sufficient to place attacker-chosen DOM elements on the rendered error page and drive WordPress's own bundled JavaScript into script execution within the site's origin.
Against a victim already authenticated as a single-site Administrator who interacts with an attacker-controlled page, a full escalation chain abuses the native Application Password approval flow, the REST API, and the plugin upload facility to achieve PHP code execution as the web server user.
No threat actor has been attributed to this vulnerability and no malware has been associated with it. Because WordPress Core powers a very large share of internet-facing websites and the affected login interface is by design publicly reachable, the exposed population is substantial, even though escalation to server-side code execution depends on several additional preconditions aligning.
| CVE ID | Affected Products | Affected CPE | CWE ID |
|---|---|---|---|
CVE-2026-64638 |
WordPress Core 4.7.0 through 7.0.2, all branches; before 7.0.3 | cpe:2.3:a:wordpress:wordpress:*:*:*:*:*:*:*:* |
CWE-79 |
03 · Mitigation
Apply WordPress 7.0.3, or the equivalent patched minor release for your supported branch such as 6.9.6, 6.8.7, or 6.7.6, without delay. This is the only fix for the underlying flaw; every other measure reduces blast radius without closing the vulnerability. Verify the running version directly through the dashboard, hosting control panel, WP-CLI, or asset inventory rather than assuming an automatic update policy has applied.
Build or refresh a complete inventory of WordPress installations across the estate, including instances outside centralized patch management. Departmental, laboratory, research group, campaign, and course sites are the highest-risk population precisely because they are internet-facing and self-administered. Record the Core version for each so remediation can be tracked to completion.
Installations running WordPress 4.6 or earlier are end of life and will receive no patch for CVE-2026-64638. Any such instance must be migrated onto a supported and patched branch, isolated from public reachability, or decommissioned outright. Treat continued public exposure of an unsupported Core version as an accepted risk requiring explicit sign-off.
Defining DISALLOW_FILE_MODS in wp-config.php breaks the plugin upload stage of the chain and is sound configuration on any installation where the plugin lifecycle is managed by deployment. Where feasible, additionally prevent direct PHP execution from inactive plugin directories, since the demonstrated chain reaches code execution without ever activating the uploaded plugin.
Accounts limited to content publication should hold the Editor role rather than Administrator. The escalation chain depends specifically on the default unfiltered_html and upload_plugins capabilities held by single-site Administrators, so narrowing that population directly narrows the set of users whose compromised browser session can be converted into server-side code execution.
04 · Adversary Tradecraft
CVE-2026-64638 is triggered directly against the public WordPress login endpoint.05 · Further Reading
At Hive Pro, it is our mission to detect the most likely threats to your organization and to help you prevent them from happening.