PlainError

PHP critical security advisory (Oct 21, 2026): what it means and how to check your server

Published 2026-10-22 · Last checked 2026-10-22 · security advisory

TL;DR
  • PHP fixed two critical bugs on Oct 21, 2026 that can let an attacker run code on your server without logging in.
  • Update to PHP 8.5.12, 8.4.27, 8.3.36 or 8.2.35 (or newer).
  • Highest risk: Apache with mod_php. PHP-FPM, php-cgi, FrankenPHP and LiteSpeed are also affected.
  • A build date of Oct 20 does not mean you are unpatched. Linux distributions and vendors got the fixes early. Check the package changelog for both CVE ids, or ask your host.

What happened

On Oct 21, 2026 the PHP project published a security advisory for two bugs, both rated CVSS v4.0 9.2:

Both can allow unauthenticated remote code execution. That means someone on the internet could run their own code on your server, with no password. The FBI Cyber Division also posted a warning about both CVEs on X.

PHP says the risk is highest for Apache with mod_php, where it has a working exploit that fires before any of your own code runs.

Steps

  1. Check which PHP your website uses.

    On cPanel, open MultiPHP Manager and note the version for each domain. Your website can use a different PHP than the command line, so do not rely only on php -v.

  2. Check the version number.

    You are on a fixed release if it is 8.5.12, 8.4.27, 8.3.36 or 8.2.35 or later in the same branch.

  3. Do not panic about the build date.

    php -v may show something like PHP 8.4.27 (built: Oct 20 2026 ...). PHP gave Linux distributions and vendors the patches before the public release, so a build from the day before is normal.

  4. Confirm the fix is in your build.

    Run this in a real server terminal (cPanel's Terminal or SSH, not phpMyAdmin, which only runs database queries). On cPanel servers, check the EasyApache package for your version (swap ea-php84 for ea-php83, ea-php82 and so on):

    rpm -qa | grep ea-php84 | xargs -n1 rpm -q --changelog | grep -i -E "CVE-2026-10961[89]"

    If you see both CVE-2026-109618 and CVE-2026-109619, you are patched. On other RPM-based servers, check your distro's PHP package changelog the same way. If you cannot run commands (shared hosting) or nothing shows up, ask your host whether their PHP build includes both fixes.

  5. Update if you are behind.

    Use your distro or host packages, or build from source from php.net. If you use the volunteer-run rpms.remirepo.net repo, PHP says it will not have updates on release day and recommends switching to distro packages or building from source.

  6. Restart PHP

    (PHP-FPM, Apache or LiteSpeed) after updating so every worker picks up the new version.

If you cannot update right away

PHP lists ways to reduce exposure. These are not a full fix, only an update is.

FAQ

Am I affected?
If PHP serves web requests on your server and it is older than the fixed versions, yes. That includes PHP-FPM, mod_php, php-cgi, FrankenPHP and LiteSpeed.
My server says it was built on Oct 20. Is that unpatched?
Not necessarily. Vendors got the fixes before the Oct 21 public release. Check the changelog for both CVE ids, or ask your host.
php -v says I am patched. Am I done?
Check MultiPHP Manager (or your host panel) too. The website can run a different PHP version than the command line.
I am on PHP 8.1 or older. What now?
The PHP project no longer ships updates for 8.1 and older. Some distributions and LTS vendors have backported fixes, so ask them, or upgrade to a supported version. PHP also published minimal source backports for 7.4, 8.0 and 8.1 for people who build from source.
Is PHP 8.2 still supported?
Yes, until Dec 31, 2026. After that it gets no security fixes, so plan an upgrade.
Are the workarounds enough?
No. PHP says updating is the only safe choice.

Sources

All Coding pages →