CVE-2026-119977: WordPress Core Unauthenticated RCE
Active exploitation confirmed in CISA KEV.
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:HActive exploitation confirmed in the wild. CISA added this to the KEV catalog on 2026-11-03. Federal agencies must patch by 2026-11-06.
TL;DR - CVE-2026-119977 enables unauthenticated remote code execution during vulnerable WordPress Core updates. - WordPress 4.7 through 7.1.3 are affected. Upgrade to WordPress 7.1.4 or the fixed release for your installed branch. - CISA lists the vulnerability in its Known Exploited Vulnerabilities catalog, confirming exploitation in the wild. - Block public access to WordPress upgrade staging paths, prevent PHP execution there, and investigate exposed sites.
CVE-2026-119977 is a high-severity WordPress Core vulnerability involving a time-of-check/time-of-use race condition during full-package updates. An unauthenticated attacker may exploit predictable, web-accessible staging content to achieve WordPress RCE under specific conditions.
Vulnerability at a Glance
| Field | Details |
|---|---|
| CVE | CVE-2026-119977 |
| Product | WordPress Core |
| CVSS | 8.1 High |
| CVSS vector | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Attack vector | Network |
| Authentication required | None |
| Privileges required | None |
| User interaction | None |
| Vulnerability type | CWE-367, time-of-check/time-of-use race condition |
| Impact | Unauthenticated remote code execution |
| Affected versions | WordPress 4.7 through 7.1.3 |
| Primary fixed version | WordPress 7.1.4 |
| Patch available | Yes |
| Active exploitation | Confirmed through CISA KEV inclusion |
| Known ransomware use | Unknown |
CVE-2026-119977 affects the WordPress Core upgrade mechanism rather than a particular third-party plugin or theme. The vulnerable condition occurs during certain full-package core upgrades, when temporary staging content is created and may be reachable through the website.
A site may expose the relevant staging content only briefly during an update, but that window can be sufficient for an attacker to interact with predictable files.
Analyst’s Take: Patch first, then investigate update windows on exposed sites. The high attack-complexity rating depends on timing and staging-path access, but CISA KEV inclusion confirms that the condition is being exploited. Requests to staging paths are leads for investigation, not proof of successful code execution.
What Is CVE-2026-119977?
CVE-2026-119977 is a time-of-check/time-of-use race condition in WordPress Core’s full-package upgrade process. During an upgrade, WordPress creates staging content in paths that may be predictable or discoverable and accessible through the web server.
An unauthenticated attacker can attempt to reach that content while the upgrade is in progress. The reported exploitation scenario requires several conditions:
- A full-package WordPress upgrade must be running.
- The staging directory must be web-accessible.
- The attacker must identify or guess the staging path.
- The server must process staged PHP or configuration content unsafely.
When these conditions align, an attacker may execute code without authenticating to WordPress.
Relevant code areas referenced in the vulnerability material include:
class-core-upgrader.phpclass-wp-upgrader.phpupdate-core.phpsetup-config.php
The security failure is not simply that temporary files exist. The issue is that predictable temporary content may become reachable and usable during a sensitive state transition.
Administrators should not assume that requiring WordPress administrator authentication eliminates the risk. The reported attack path is unauthenticated at the application layer. Web-server controls, filesystem permissions, update behavior, and PHP handling determine whether staging content can be abused.
For related WordPress and web-application security issues, review our coverage of CVE-2026-65321 and CVE-2026-82627.
Who Is Affected?
The NVD description identifies WordPress Core versions 4.7 through 7.1.3 as affected. This includes sites on older maintenance branches and current installations running 7.1.3.
Sites using managed WordPress packages should verify their provider’s version mapping rather than relying only on the version shown in the WordPress dashboard. Where a site is on a vendor-maintained distribution, confirm that the vendor has backported the fix and document the exact package version.
Fixed WordPress Versions
| WordPress branch | Fixed version |
|---|---|
| 7.1 | 7.1.4 |
| 7.0 | 7.0.8 |
| 6.9 | 6.9.11 |
| 6.8 | 6.8.12 |
| 6.7 | 6.7.11 |
| 6.6 | 6.6.11 |
| 6.5 | 6.5.14 |
| 6.4 | 6.4.14 |
| 6.3 | 6.3.14 |
| 6.2 | 6.2.15 |
| 6.1 | 6.1.16 |
| 6.0 | 6.0.18 |
| 5.9 | 5.9.20 |
| 5.8 | 5.8.19 |
| 5.7 | 5.7.21 |
| 5.6 | 5.6.23 |
| 5.5 | 5.5.24 |
| 5.4 | 5.4.25 |
| 5.3 | 5.3.27 |
| 5.2 | 5.2.30 |
| 5.1 | 5.1.28 |
| 5.0 | 5.0.31 |
| 4.9 | 4.9.35 |
| 4.8 | 4.8.34 |
| 4.7 | 4.7.39 |
WordPress 4.6 and earlier are outside the stated affected range, but they should not be treated as secure platforms. These unsupported releases may contain other vulnerabilities. Upgrade to a supported WordPress branch whenever possible.
CVSS Score Breakdown
CVE-2026-119977 has a CVSS 3.1 score of 8.1 High:
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
The vector indicates that the vulnerability is remotely reachable over the network (AV:N), requires high attack complexity (AC:H), needs no privileges (PR:N), and requires no user interaction (UI:N).
The high-complexity rating reflects the timing and environmental requirements around a full-package update and accessible staging content. However, attack complexity should not be interpreted as low operational risk.
The impact metrics are all high:
- Confidentiality: An attacker may access site or server data.
- Integrity: An attacker may modify WordPress files, content, or configuration.
- Availability: An attacker may disrupt the site or underlying host.
The scope remains unchanged (S:U), meaning the scored impact is confined to the vulnerable security authority under the CVSS model.
Exploitation Status
CVE-2026-119977 is confirmed exploited in the wild because CISA added it to the Known Exploited Vulnerabilities catalog on 2026-11-03. Federal agencies received a remediation deadline of 2026-11-06 under the catalog entry.
CISA identifies known ransomware-campaign use as unknown. That designation does not mean exploitation is theoretical or low risk.
No independently verified public proof-of-concept repository was identified in the supplied research. Defenders should state that a public PoC is not known from the reviewed sources, rather than claiming that no exploit exists.
Available reporting discusses exploitation attempts and monitoring for requests to predictable staging paths. Those observations do not establish that every request led to successful code execution. Incident responders should correlate web requests with:
- WordPress update timing
- Filesystem changes
- PHP process activity
- New administrator accounts
- Post-exploitation network activity
- Changes to plugins, themes, and scheduled tasks
Additional WordPress Security Guidance
CVE-2026-119977 highlights why WordPress update workflows need layered controls. In addition to applying the fixed release:
- Keep WordPress Core, plugins, and themes updated.
- Restrict administrative access with MFA and network controls.
- Prevent PHP execution in upload and temporary directories.
- Monitor file integrity and administrator-account changes.
- Centralize web-server and WordPress logs.
- Use a web application firewall where appropriate.
- Maintain tested backups that are isolated from the web host.
- Review update activity and deployment permissions regularly.
Organizations evaluating broader web-application protection can also compare the best WAF services in 2026. A WAF can help block suspicious requests, but it does not replace patching or host-level investigation.
How to Detect CVE-2026-119977 Exploitation
Detection should focus on vulnerable WordPress versions, update activity, requests to upgrade staging locations, and unexpected changes made during or immediately after a core upgrade.
Begin by inventorying all internet-facing WordPress installations. Record:
- Exact WordPress Core version
- Update method
- Web server
- PHP handler
- Filesystem location of
wp-content/upgrade - Whether the staging directory is publicly reachable
- Whether PHP execution is possible under the staging directory
Review Web-Server Logs
Review access logs around every WordPress update performed while the site was running an affected version. Look for requests involving:
wp-content/upgrade- Temporary package directories
- PHP files in staging locations
- Unexpected query strings
- Successful responses from paths that should not be publicly served
A generic web-server search can identify obvious staging-path access:
zgrep -hEi \
'/wp-content/upgrade|/wp-admin/.+upgrade|/upgrade/.+\.php|/wp-content/upgrade/.+\.php' \
/var/log/nginx/access.log* /var/log/apache2/access.log* 2>/dev/null
For an Elastic-style environment, a starting query might be:
url.path : "/wp-content/upgrade/*" OR
url.path : "*upgrade*.php" OR
url.path : "/wp-admin/*upgrade*"
Adapt field names and path patterns to the local logging schema. A request alone is not proof of exploitation, but requests to staging PHP files during an update should be escalated, especially when associated with:
200or3xxresponses- Unusual user agents
- Repeated probing
- Subsequent access to administrative endpoints
- Upload or plugin-installation activity
- Suspicious outbound connections
Check the Host Filesystem
Identify PHP files created or modified under upgrade-related directories and compare them with expected package contents:
find /var/www/example.com -path '*/wp-content/upgrade/*' \
-type f \( -name '*.php' -o -name '*.phtml' -o -name '*.phar' \) \
-printf '%TY-%Tm-%Td %TH:%TM:%TS %p\n' 2>/dev/null
Also investigate:
- Unexpected administrator accounts
- Modified
wp-config.php - New plugins or themes
- Altered scheduled tasks
- Web shells
- Modified
.htaccessor web-server configuration - Unexpected PHP processes
- Outbound connections from the web process
Preserve logs and filesystem metadata before cleanup if compromise is suspected.
Mitigation and Patching
The primary WordPress security update is to upgrade immediately to 7.1.4. Administrators on older supported branches should deploy the corresponding fixed release listed above, such as 6.9.11, 6.8.12, 6.5.14, or 4.7.39.
Confirm the resulting version after the update and retain package-manager, deployment, or WordPress update logs as evidence.
Updating with WP-CLI
For a command-line deployment using WP-CLI, verify the current version, create an appropriate backup, and update WordPress Core:
cd /var/www/example.com
wp core version
wp db export /var/backups/example-com-$(date +%F-%H%M%S).sql
wp core update
wp core version
wp core update selects the current release available to the installation’s update channel. In controlled environments, use the organization’s approved artifact and deployment process, then verify that it is one of the fixed versions.
Do not assume that a successful command means the site is remediated until the installed version has been checked.
Block Public Access to Upgrade Staging Paths
Temporary defenses should reduce exposure while patching is scheduled. Deny direct web access to upgrade staging content and prevent PHP execution beneath the staging directory.
For Apache, a directory-level rule can deny access and disable PHP handling, subject to local configuration and version compatibility:
# Apply within the WordPress wp-content/upgrade directory
Require all denied
<FilesMatch "\.(php|phtml|phar)$">
Require all denied
</FilesMatch>
For Nginx, block the path at the server or location level and ensure PHP requests cannot be passed to the PHP-FPM upstream:
location ^~ /wp-content/upgrade/ {
deny all;
return 403;
}
These controls are defense-in-depth, not substitutes for installing a fixed WordPress release. Validate them against the site’s update workflow because an overly broad rule may interfere with legitimate administrative operations.
Also ensure that staging directories are not writable or executable in ways that allow a web process to create persistent PHP content.
What to Do If Compromise Is Suspected
If a vulnerable site was internet-facing and performed a full-package update before remediation, treat it as potentially compromised until the investigation establishes otherwise.
After patching:
- Preserve relevant logs, filesystem metadata, and forensic evidence.
- Review requests to staging paths during update windows.
- Check for unexpected files, administrator accounts, plugins, and themes.
- Inspect scheduled tasks and web-server configuration.
- Compare WordPress Core files with a known-good release.
- Rotate WordPress administrator credentials.
- Rotate database, hosting-panel, deployment, and API credentials if exposure is possible.
- Review outbound traffic from the web server.
- Rebuild the host if integrity cannot be established.
- Document the timeline, indicators, remediation, and validation steps.
Do not delete suspicious files before preserving evidence. Removing a web shell may eliminate useful indicators while leaving other persistence mechanisms undiscovered.
References
- NVD: CVE-2026-119977
- CISA Known Exploited Vulnerabilities Catalog
- WordPress 7.1.4 security release
- WordPress 7.1.3
class-core-upgrader.phpreference - WordPress 7.1.3
class-wp-upgrader.phpreference - WordPress 7.1.3
update-core.phpreference - WordPress 7.1.3
setup-config.phpreference - WordPress 7.1.4 upgrader reference
- Trend Micro security alert
- Technical exploitation and remediation discussion
This article may contain affiliate links. We earn a commission on qualifying purchases at no extra cost to you.