Security notice
WordPress XSS2Shell: fixed in August, exploit tools are public. Check your version.
This is not a new flaw. On August 6, 2026, WordPress fixed CVE-2026-64638, nicknamed XSS2Shell, a flaw in the WordPress login page that lets an outsider run their own code in a visitor's browser. Its finders, the security company pwn.ai, showed that if a logged in site admin opens a booby trapped link, an attacker can go on to take over the whole site. WordPress rates it 8.9 out of 10, High. What has changed since August is that free exploit tools for it are easy to find, and Tenable lists it as "exploit available." Most sites got the fix automatically. The sites at risk are ones that never updated, ones stuck on old versions, and anything on WordPress 4.6 or older, which gets no fix at all. Check your version today; it takes a minute.
What happened
- The flaw. WordPress says its login page (
wp-login.php) can be made to run an attacker's JavaScript, with no account needed. The attacker sends someone a crafted login request, usually through a page they control. (WordPress, GitHub advisory, NVD) - How it becomes a site takeover. pwn.ai showed a chain that works only against an admin who is already logged in. When that admin visits the attacker's page, the attack quietly approves a new Application Password (a WordPress API key) in the admin's name, publishes a page with hidden code, uploads a plugin ZIP and runs a PHP file inside it. The plugin never has to be activated. (pwn.ai, University of Toronto)
- What it needs. WordPress says the takeover path needs "successful social engineering" and "explicit interaction" by the victim. The University of Toronto lists the conditions: Application Passwords switched on (the default since WordPress 5.6), a single site admin, plugin uploads allowed and a writable plugin folder. The Hacker News reports the full takeover was shown on a local test install, not a live site. (GitHub advisory, University of Toronto, The Hacker News)
- Severity. WordPress scored it 8.9 (High) under CVSS 4.0, noting high attack complexity and active user interaction. Patchstack scores it 7.1. (GitHub advisory, Patchstack)
- The timeline. pwn.ai reported it on July 27, 2026. WordPress released 7.0.3 and fixes for every branch back to 4.7 on August 6, and pwn.ai published details on August 7. (pwn.ai, WordPress)
- What is new. Public exploit code started appearing on GitHub within a day of the details, and new full chain tools are still being posted, most recently on October 20. Tenable now marks the flaw "exploit available." We have not tested these tools, and we cannot say how well they work. (Tenable; our check of GitHub, October 22)
- Attacks. As of August 7, WordPress's advisory did not report attacks, and the University of Toronto reported none. On August 10, Canada's Cyber Centre wrote that "open-source reporting indicates" it is being exploited, without naming a source; we could not confirm that. It is not on CISA's list of exploited flaws (catalog of October 21, checked October 22). (The Hacker News, University of Toronto, Canadian Centre for Cyber Security, CISA)
Who should worry
You are probably fixed if your site updates WordPress automatically and now runs 7.1.3. Check anyway. Ask about this if any of these are true:
- Your site runs WordPress 7.0.2 or older and has not had a security update since early August.
- Automatic updates are off, or your host or developer updates WordPress by hand.
- The site runs WordPress 4.6 or older. Those versions are past end of life and get no fix.
- You are an agency or freelancer looking after many sites, especially old ones nobody logs into.
Stores on Shopify, Squarespace or Wix do not run WordPress and are not affected by this flaw.
What to do now
- Check your version. In WordPress, go to Dashboard, then Updates. Do not assume auto updates worked; the University of Toronto and CUHK both say to verify the running version. (University of Toronto, CUHK)
- Update. WordPress's current release is 7.1.3 (October 6, 2026). If you must stay on an older branch, install that branch's newest security release, not just the August one. A later WordPress flaw, CVE-2026-87902, is on CISA's exploited list and was fixed in newer branch releases on September 22. (WordPress, GitHub advisory, CISA)
- On 4.6 or older, move to a supported version or take the site down. There is no fix. (University of Toronto, The Hacker News)
- Look for signs someone got in. Check Users for admins you don't recognize, each admin's profile for Application Passwords you didn't create, the
wp-content/pluginsfolder for unfamiliar folders (even inactive ones), and Pages for new pages you didn't publish. Ask your host about recently changed files. (CUHK, University of Toronto, pwn.ai) - Admins: don't click unexpected links while logged in to WordPress. The takeover path depends on a logged in admin opening the attacker's page.
Until you can update. The University of Toronto suggests turning off Application Passwords if you don't use them and setting DISALLOW_FILE_MODS to block plugin uploads from the dashboard. These block the takeover path pwn.ai showed but not the underlying flaw. OpenCVE suggests limiting who can reach the login page as a temporary step; our guide to an admin login page open to the internet explains how. None of these replace updating. A Content Security Policy does not stop this attack, according to the University of Toronto's tests. Patchstack has published a blocking rule for its customers, but pwn.ai published a variant that gets past firewall rules that only block ?rest_route=. (University of Toronto, OpenCVE, Patchstack, pwn.ai)
What to send your developer, agency or host
WordPress fixed CVE-2026-64638 (XSS2Shell, CVSS 4.0 score 8.9, High) on August 6, 2026. It is a pre-authentication reflected XSS on wp-login.php that pwn.ai chained to PHP code execution through a logged in administrator, Application Passwords and a plugin ZIP upload. Public exploit tools now exist. It affects WordPress 4.7 through 7.0.2; 4.6 and older get no fix. Please confirm the WordPress version on every site you manage for us, update to 7.1.3 or the newest security release for the branch (which also covers CVE-2026-87902, fixed September 22), and check for unexpected Application Passwords, new admin accounts, unfamiliar folders in wp-content/plugins, new pages and recently changed files. If Application Passwords are not used, please turn them off. Sources: GitHub advisory, WordPress 7.0.3 release, pwn.ai.
Technical steps
Step 1. Check your version
wp core version
Fixed versions from August 6: 7.0.3, 6.9.6, 6.8.7, 6.7.6, 6.6.6, 6.5.9, 6.4.9, 6.3.9, 6.2.10, 6.1.11, 6.0.13, 5.9.14, 5.8.14, 5.7.16, 5.6.18, 5.5.19, 5.4.20, 5.3.22, 5.2.25, 5.1.23, 5.0.26, 4.9.30, 4.8.29, 4.7.34. Any later release on the same branch also includes the fix. (GitHub advisory)
Step 2. Update
wp core update
wp core version
Step 3. Check Application Passwords and admins
wp user list --role=administrator
wp user application-password list <user>
Delete any Application Password you don't recognize, and any admin account you didn't create.
Step 4. Check plugin folders
ls -la wp-content/plugins
Compare each folder against wp plugin list. A folder you don't recognize can hold code that runs even though the plugin was never activated. (pwn.ai, University of Toronto)
Step 5. If you don't use Application Passwords, turn them off
Add to a must use plugin or your theme's functions file:
add_filter( 'wp_is_application_passwords_available', '__return_false' );
To block plugin and theme uploads from the dashboard, add to wp-config.php:
define( 'DISALLOW_FILE_MODS', true );
Note that DISALLOW_FILE_MODS also turns off dashboard updates, so use it only where updates are handled another way. (University of Toronto)
Common questions
Is this a new WordPress flaw?
No. WordPress fixed it on August 6, 2026. What is new is that ready made exploit tools are now public, so sites that never got the fix are easier targets.
Has my business been hacked?
This notice does not mean your business has been hacked. The takeover path needs a logged in admin to open an attacker's page, and only sites still on an old version are exposed. Check your version and the signs listed above.
My site updates automatically. Am I safe?
Probably, but check. The University of Toronto and CUHK both say to confirm the version your site is actually running rather than assume the update worked.
Can EverThread tell me if I am affected?
Our website scan checks your site from the outside, the way a browser sees it, and does not check your WordPress version or test for this flaw. If you use EverThread client reports with the EverThread Connect plugin installed, the report shows the WordPress version the site runs and whether WordPress says an update is waiting; compare that version with the list above. Our free scan does flag an admin login page that is open to the internet, which is covered in our guide.
Security alerts by email
Hear about the next one first.
When a flaw puts websites at risk, we send one plain-English email: what happened, who it affects and what to do. It's free, whether or not you use EverThread.
Sources
- WordPress: WordPress 7.0.3 release, August 6, 2026
- WordPress (GitHub advisory): GHSA-52p2-r8wf-jcrf, Pre-auth reflected XSS on login screen with potential to lead to PHP code execution, August 6, 2026
- WordPress (GitHub advisory): GHSA-7hp8-65ch-5whp (CVE-2026-87902), September 22, 2026
- WordPress: Releases (7.1.3, October 6, 2026)
- NVD: CVE-2026-64638
- pwn.ai: XSS2Shell: WordPress Preauth XSS to RCE Chain, August 6, 2026
- The Hacker News: New WordPress Pre-Auth XSS Could Lead to PHP Code Execution, August 7, 2026
- University of Toronto: Security advisory: WordPress XSS2Shell, August 7, 2026
- CUHK ITSC: WordPress Pre-Authenticated XSS Vulnerability "XSS2Shell"
- Patchstack: WordPress Core < 7.0.3 Reflected XSS to RCE
- Canadian Centre for Cyber Security: WordPress security advisory (AV26-792), August 10, 2026
- Tenable: Nessus plugin 334528
- OpenCVE: CVE-2026-64638
- CISA: Known Exploited Vulnerabilities Catalog