Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

This is a WordPress core vulnerability—not a third-party plugin flaw. WordPress fixed a critical security issue involving REST API batch-route confusion and SQL injection, with potential for remote code execution, in WordPress 7.0.2 on July 17, 2026. Administrators should verify their version immediately and update to 7.0.2, 6.9.5, or 6.8.6, depending on their release branch.

What happened?

WordPress 7.0.2 addressed one critical and one high-severity security issue. The official release identifies the affected component as WordPress core, so a site can be exposed even when it has no vulnerable plugin installed.

The issues are associated with CVE-2026-60137 (GHSA-fpp7-x2x2-2mjf) and CVE-2026-63030 (GHSA-ff9f-jf42-662q). WordPress describes one as a facilitated SQL-injection issue. The more serious chain combines REST API batch-route confusion with SQL injection and can lead to remote code execution.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

That does not mean every vulnerable request automatically gives an attacker complete control of every website. Exploitability and impact depend on the site’s configuration and the attacker’s ability to reach and use the vulnerable code. However, a potential path to code execution in internet-facing WordPress core warrants immediate patching.

Which WordPress versions are affected?

Installed branch Exposure Fixed version
7.0.0 or 7.0.1 Both reported issues 7.0.2
6.9.x before 6.9.5 Both reported issues 6.9.5
6.8.x before 6.8.6 One reported issue 6.8.6
Before 6.8 WordPress says these two issues do not affect these versions Upgrade to a supported release

WordPress says it enabled forced updates through its automatic-update system for affected installations. Do not rely on that alone: confirm the installed version yourself. “Unaffected by these two CVEs” also does not mean that an old, unsupported WordPress version is secure.

How to update WordPress

Using the administrator dashboard

  1. Log in to WordPress.
  2. Open Dashboard → Updates.
  3. Check the installed WordPress version.
  4. Select Update Now if the site is below its fixed branch release.
  5. Return to the Updates screen and confirm the fixed version.
  6. Test the public site, login, forms, checkout, REST API-dependent features, and important integrations.

WordPress provides release information and manual download guidance in its 7.0.2 documentation.

Using WP-CLI

wp core version
wp core update
wp core version

Take a tested backup first. Do not run this blindly on multisite installations, immutable or containerized deployments, Composer-managed WordPress, or systems whose files are controlled by a deployment pipeline. Use the normal deployment process in those environments.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Verify automatic and managed updates

Managed hosting may apply the update centrally, but site owners should still verify:

  • The version shown under Dashboard → Updates and Dashboard → Home
  • The hosting control panel’s reported WordPress version
  • The deployment or file-modification timestamp
  • Whether filesystem permissions, disk space, maintenance mode, or host-level version pinning interrupted the update

On a multisite network, check the shared core installation and confirm that the network is running the intended release. A custom fork may contain a backported fix without changing the upstream version; request written confirmation from the vendor and verify the patch.

Is updating enough?

Updating closes the known vulnerable code path, but it does not remove changes made before the patch. If a site was exposed while vulnerable, assess it separately for compromise.

  • Patch status: Is the site running 7.0.2, 6.9.5, or 6.8.6?
  • Exposure status: Was it internet-facing while a vulnerable version was installed?
  • Compromise status: Is there evidence of unauthorized access or modification?

Possible persistence includes web shells, malicious administrator accounts, unauthorized plugins or themes, modified core files, injected JavaScript, database backdoors, and stolen credentials.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How to check for compromise

  1. Preserve relevant logs and, where possible, take a forensic snapshot before deleting suspicious files.
  2. Review web-server access logs around the disclosure and patch period, including unusual POST requests to WordPress REST API endpoints and malformed or unexpected batch requests.
  3. Review users and user metadata for newly created or unexplained administrator accounts.
  4. Compare WordPress core files with clean files from the corresponding official release.
  5. Inspect recently modified PHP files in wp-content/uploads, wp-content/mu-plugins, wp-content/plugins, and wp-content/themes.
  6. Check scheduled tasks, cron entries, persistent must-use plugins, database options, and injected code.
  7. Rotate WordPress, hosting, database, SSH, API, and other relevant credentials. Regenerate WordPress salts if compromise is suspected.
  8. Contact the hosting provider or an incident-response specialist if there is evidence of code execution or persistent access.

Do not immediately delete suspicious files if an investigation may be needed; preserve logs and a copy first. A scanner can help identify anomalies, but no plugin-only scan proves that a site is clean.

What if the update fails?

  1. Record the current version and preserve update and server logs.
  2. Take a verified backup or hosting snapshot.
  3. Ask the host whether the installation is managed or version-pinned.
  4. Retry with the official release package or the site’s approved deployment mechanism.
  5. Compare core files with a clean release and investigate mixed or incomplete files.
  6. Treat unexplained update failures on an exposed site as a possible compromise signal.

Common causes include insufficient filesystem permissions, exhausted disk space or inodes, failed database updates, plugin incompatibilities, and compromised files blocking the update.

Temporary measures for sites that cannot be patched

Until the update is completed, consider restricting access to login and administration interfaces, placing the site behind a properly configured WAF, asking the host about server-side mitigation, or taking a high-value site offline temporarily.

Restricting or disabling REST API access may reduce exposure only when the site does not need it. It can break the block editor, mobile apps, headless front ends, WooCommerce, forms, analytics, and other integrations. A WAF can provide temporary containment, but it is not a substitute for patching and may produce false positives or be bypassed.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Do security plugins protect against this?

Security plugins may provide vulnerability alerts, file-integrity monitoring, login protection, malware scanning, firewall rules, and event logging. Those are useful additional layers, but they do not make an unpatched WordPress core installation equivalent to a patched one. Detection may be delayed, configuration may be incomplete, and a plugin may not inspect traffic before it reaches the server.

For individual sites, prompt updates, strong authentication, tested backups, and basic monitoring may be sufficient. Agencies and businesses managing many sites may benefit from centralized patch management, fleet-wide alerts, edge filtering, or managed incident response. Products such as Wordfence, Cloudflare’s WAF, and Sucuri address different needs; none replaces the WordPress core update.

What “millions of websites” really means

WordPress’s large installed base makes broad potential exposure plausible, but no verified global count of vulnerable live websites is established by the cited official material. Potentially vulnerable installations are not the same as internet-facing sites, targeted sites, or compromised sites.

Third-party researchers have used the name “WP2SHELL” and reported active exploitation. Those claims should be treated as third-party reporting rather than definitive confirmation from the official WordPress advisory. The official sources confirm the fixes and affected branches, not the number of attacks or compromises. See the Femtosec technical overview for that attribution.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Technical scope

WordPress’s documentation lists revised core files including /wp-includes/rest-api/class-wp-rest-server.php, /wp-includes/class-wp-query.php, and /wp-includes/rest-api.php. These details can help security teams scope review, but they are not a reason to publish or use exploit payloads.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.