Protect.Computer
NEWS

Installing the WordPress 7.1.4 Fix Can Still Expose Sites

· 3 min read · Got hacked
Installing the WordPress 7.1.4 Fix Can Still Expose Sites

The fix for the WordPress core flaw we covered on 30 October has a catch: the update that installs it can leave a site exposed one last time. Umut Bayram of Picus Security, who found the flaw, says the updater unpacks the new version using the site’s old, unpatched code, so an attacker who strikes at the right moment during that update can still run code on the server. The flaw is tracked as CVE-2026-119977; CISA added it to its Known Exploited Vulnerabilities catalog earlier this week, per The Hacker News. Our earlier post covers the attacks Wordfence was blocking.

During a core update that uses a complete package, WordPress unpacks a copy of the new version, including its installer, into a folder under wp-content/upgrade that the web server can usually reach. The 7.1.4 fix gives that folder a random name, but on sites running 5.9 or later the old code that performs the update still names the folder after the downloaded file, so an attacker can predict it. Bayram’s write-up says an attacker who catches that window can set up the temporary copy with their own database, log in to it and run PHP code with the web server’s permissions before the copy is deleted.

Not every update is exposed. Complete packages always include the installer; a smaller partial package is exposed only if it happens to contain the installer files. The Hacker News checked WordPress.org’s update service and saw partial packages offered for in-branch updates such as 7.1.3 to 7.1.4, and only complete packages for moves from an older branch such as 7.0.7 to 7.1.4. On 4.4 through 5.8 the old code adds random characters to the folder name, which hides it unless the site leaks it, for example in an error message. WordPress’s own advisory page rates the issue Low and lists no CVE ID.

How to check if you’re affected

Affected versions are WordPress 4.7 through 7.1.3, per the WordPress advisory. Patched releases are 7.1.4, 7.0.8, 6.9.11, 6.8.12, 6.7.11, 6.6.11, 6.5.14, 6.4.14, 6.3.14, 6.2.15, 6.1.16, 6.0.18, 5.9.20, 5.8.19, 5.7.21, 5.6.23, 5.5.24, 5.4.25, 5.3.27, 5.2.30, 5.1.28, 5.0.31, 4.9.35, 4.8.34 and 4.7.39. Picus says WordPress 2.7 through 4.6 received no fix and should move to a supported version. Check which WordPress version your site is running before you update. Sites with automatic background updates enabled install the fix through the same updater and the same steps, per The Hacker News.

Picus describes two safe ways to update:

  • Block web access to wp-content/upgrade/ first. WordPress reads and writes this folder through the filesystem, so denying HTTP access does not break updates. On Nginx: location ^~ /wp-content/upgrade/ { deny all; }. On Apache, use Require all denied for that directory in the virtual host, or add RedirectMatch 403 ^/wp-content/upgrade/ to the .htaccess file in the WordPress root, above the rewrite block. Do not put an .htaccess file inside wp-content/upgrade/ itself, because the unpatched code deletes that folder’s contents before extracting. Confirm the folder returns 403 before you start the update.
  • Update manually outside the web root. Download and extract the release somewhere else, back up files and the database, then copy the core files over the site while leaving wp-config.php and wp-content untouched. Picus notes wp core update in WP-CLI is not a substitute, because it uses the same updater and extracts into wp-content/upgrade/.

If you cannot patch immediately, Picus advises confirming that your security controls have prevention and detection rules for CVE-2026-119977 and actually block requests targeting setup-config.php under wp-content/upgrade/. Once 7.1.4 or a branch fix is installed, later updates use a random folder name, per The Hacker News.

Sources

Related reading