WordPress shipped version 7.0.4 on August 12, 2026, and the release notes are short for a reason: it exists to fix one vulnerability, CVE-2026-65640, and the WordPress security team wants that message to be unmissable. The bug carries a CVSS score of 8.8, high severity, and it was responsibly disclosed by the pwn.ai team before anyone saw it exploited in the wild. If you run a self-managed WordPress site, the practical question isn’t whether to update. It’s whether the specific conditions that make this bug dangerous apply to your setup, because the patch alone doesn’t tell you that.
What the vulnerability actually does
The flaw sits in how WordPress processes uploaded files when a server has both the Imagick PHP extension and the Ghostscript binary installed. An attacker who already holds an account with Author-level access or higher, meaning any account with the upload_files capability, can upload a specially crafted PostScript file disguised as an image. When Imagick hands that file to Ghostscript for processing, the embedded code runs on the server instead of producing a thumbnail. That’s remote code execution through what looks, from the admin dashboard, like an ordinary media upload.
It’s worth being precise about what this isn’t. It’s not a bug that lets an anonymous visitor break in. It requires an existing account above Contributor level, which is why WordPress rated it high rather than critical. But “requires an account” undersells the risk for a lot of real sites, because Author access is exactly the tier handed out to guest contributors, freelance writers, and multi-author blogs without much scrutiny. If you’ve ever added a content contributor and given them Author so they could upload their own header image, that account is in scope.
Checking whether your server is even exposed
Two things both have to be true for this to matter: Imagick has to be enabled in PHP, and Ghostscript has to be installed and reachable by PHP’s process. A lot of shared hosting environments ship Imagick as a default PHP extension because plugins like image optimizers and PDF generators depend on it, so its presence isn’t a signal of anything unusual. Ghostscript is less universal. It usually gets installed to support PDF-to-image conversion, EPS handling, or certain document-management plugins, not because of anything WordPress core does by default.
You can check both from a shared-hosting control panel’s PHP configuration screen, or by asking your host directly which PHP modules are enabled on your account, which is the more reliable route if you’re not sure how to read a phpinfo page. On a VPS or other root-access environment, the check is more direct: which gs tells you immediately whether Ghostscript is on the system path, and php -m | grep -i imagick does the same for the PHP extension. Neither command requires touching WordPress itself, which makes this a five-minute check worth running before you assume the vulnerability doesn’t apply to you. A surprising number of site owners inherit both by default from a prebuilt LAMP or LEMP server image, without ever consciously choosing either one. If Ghostscript isn’t installed at all, this specific vulnerability has nothing to work with on your server regardless of your WordPress version, though updating is still the right move since the backport covers more than just this one issue in practice.
How this plays out if you can’t patch immediately
Not every site can jump to 7.0.4 the same day it ships. A heavily customized plugin stack, a staging-to-production process that takes time, or a managed environment where updates go through someone else’s change window are all real constraints, not excuses. If you’re in that position, the interim mitigation is narrower than updating everything at once: disable Imagick’s Ghostscript delegate specifically, usually by editing or removing the PostScript and EPS entries from ImageMagick’s policy.xml file, rather than disabling Imagick entirely and breaking whatever legitimate image processing depends on it elsewhere on the site. That buys time without treating patching as optional, and it’s a much smaller, more testable change than a full core update made under time pressure.
Why updating core isn’t the whole fix
The patch is already backported further than you’d expect. WordPress maintains security fixes across branches going back to 4.7, which tells you how seriously the team is treating this; a nine-year-old branch is getting the same fix as 7.0.4 itself. That’s good news if you’re stuck on an old version for compatibility reasons and can’t jump straight to current. But it also means “I updated last month” doesn’t automatically mean you’re covered if last month’s update predates August 12.
The part that patching core doesn’t touch at all is the privilege side of the bug. Even on a fully patched install, an Author-level account is still an Author-level account. The fix closes this specific exploitation path, but it doesn’t audit who currently holds upload permissions on your site, and that’s a separate job you still have to do yourself.
The role audit nobody runs until something goes wrong
Go through your user list and ask, for each account at Author or above, whether that person genuinely needs to upload media unsupervised. Former contractors, writers who left months ago, and demo accounts created for a client review are the usual candidates for a role you forgot to downgrade. WordPress doesn’t surface this as a maintenance task anywhere in the dashboard, so it only gets done when someone goes looking, which for most site owners is never.
If you’re running a multi-author site where Author access is genuinely necessary for several real, active contributors, the practical mitigation beyond patching is removing Ghostscript from the server entirely if nothing you actually use depends on it. A PHP extension or binary that isn’t doing real work for you is attack surface with no offsetting benefit, and this bug is a specific, concrete illustration of why that trade-off matters. The same logic applies to any server component: the question isn’t whether it’s ever been exploited before, it’s whether you’d notice if someone started looking for a way to abuse it.
What this says about the “my host handles security” assumption
It’s tempting to treat server-level vulnerabilities like this as something your hosting provider’s security stack should catch before it ever reaches your WordPress install. That’s a reasonable expectation in theory, and worth testing against reality rather than assuming. Independent penetration testing from Patchstack, covered in a recent WP Tavern conversation with researcher Maciek Palmowski, found that generic hosting security layers, the kind built to catch broad PHP attacks like path traversal, performed well against those general threats but let the large majority of WordPress-specific exploits straight through. A file-upload-to-code-execution chain like CVE-2026-65640 is exactly the WordPress-specific category that research flagged as the weak point, not the generic one hosts are already tuned to catch.
That’s not an argument against trusting your host. It’s an argument for not treating a firewall as a substitute for patching on your own timeline. The gap between a CVE’s public disclosure and the first working exploit in the wild is often measured in hours, not weeks, and a generic WAF sitting in front of your site is not guaranteed to have a signature for this specific PostScript-to-Ghostscript chain the day it goes public.
A short, concrete checklist
If you manage your own WordPress install rather than handing every update to someone else, the actual to-do list here is small: confirm you’re on 7.0.4 or later, or the corresponding backported patch for your branch; check whether Imagick and Ghostscript are both present on your server; review who currently holds Author access or higher and whether each account still needs it; and remove Ghostscript if nothing on your site genuinely requires it. None of that takes long, and all of it is cheaper to do now than after an incident.

