October 22, 2026
October 2026: critical PHP vulnerabilities, and patched PHP 5.4, 5.6 and 7.4
On 21 October 2026 the PHP project published a security advisory for two critical vulnerabilities, CVE-2026-109618 and CVE-2026-109619, that can allow unauthenticated remote code execution. Every PHP installation that serves web requests is affected: PHP-FPM, Apache with mod_php, php-cgi and the rest. The PHP project rates the risk highest for mod_php.
The fixed releases are PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35. For PHP 7.4, 8.0 and 8.1 the PHP security team published minimal source backports. PHP 5.x and 7.0–7.3 get nothing from upstream.
Update first. Mitigation is not a fix.
The only complete fix is updating to a patched version and restarting every PHP process. The PHP project is clear about this: there are no complete mitigations. Please don't treat a configuration change as a replacement for the update.
PHP 7.4 and 8.x on EL8 / EL9
Reqad installs PHP from the remi repository. On 21 October remi published fixed builds of PHP 7.4, 8.0, 8.1, 8.2, 8.3, 8.4 and 8.5 for EL8 and EL9. As root:
dnf update 'php*'
Afterwards, check that every PHP-FPM service (php82-php-fpm, php83-php-fpm…, the panel's own reqad-php-fpm) and, if any site uses mod_php, Apache have restarted. A worker that started before the update keeps running the old code.
PHP 5.6 on EL8: no fix from remi
remi's newest PHP 5.6 for EL8 is php56-php-5.6.40-47.el8.remi, published on 2 July 2026. You can check this yourself in remi's EL8 package list. That build does not contain these fixes, and nothing newer had appeared there by 22 October. remi has no PHP 5.6 for EL9 and no PHP 5.4 for EL8 or EL9 at all. Its PHP 7.0–7.3 builds for EL8 were last updated in July and August, so they are not fixed either.
PHP 7.2 (and 7.0, 7.1, 7.3): move to PHP 7.4
There is no fixed PHP 7.2 from remi, and Reqad does not provide one either. The same goes for 7.0, 7.1 and 7.3. The only way to close these vulnerabilities for those sites is to move them to PHP 7.4, which remi has fixed (or to a newer version). Applications that run on 7.2 or 7.3 usually run on 7.4 with few or no changes. Switch each site's PHP version in the panel, test it, and once no site uses the old version any more, remove it.
Patched packages from Reqad
We have ported the fix to the old versions that hosting customers still depend on:
| PHP | System | Package | Repository |
|---|---|---|---|
| 5.4 | EL8 | php54-php-5.4.45-19.2.el8 | Premium |
| 5.6 | EL8 | php56-php-5.6.40-47.1.el8 | Premium |
| 5.6 | EL9 | php56-php-5.6.40-47.2.el9 | Premium |
| 7.4 | CentOS 7 (EL7) | php-7.4.33-31.1.el7 | Free EL7 repository |
PHP 5.4 and 5.6 (EL8, EL9) use the same package names, paths and services as remi's (php56-php-*, /opt/remi/php56, php56-php-fpm), so they install over remi's packages and the panel keeps working as before. The EL8 PHP 5.6 build is remi's own 5.6.40-47 with the fix added. When remi publishes a newer fixed release, it will replace ours automatically. The one exception is php56-php-oci8: we don't ship it, so a server that has remi's oci8 package installed can't take this update. On a server with access to the premium repository:
dnf install reqad-repo-premium (once)dnf update 'php54*' 'php56*'
Access to the premium repository is given per server with a premium subscription.
PHP 7.4 on CentOS 7 replaces remi's PHP 7.4 system packages (php-*). remi's EL7 repository stopped at 7.4.33-15, so ours is a rebuild of remi's current 7.4.33-31, which carries the PHP project's 7.4 backport and the other security fixes published since -15. It is in our free EL7 repository.
To install it:
Add the server's IP address in your reqad.com account (free).- Add the repository, as root:
echo '[reqad] name=Reqad $releasever - $basearch baseurl=https://repo.reqad.net/el$releasever/RPMS/$basearch gpgkey=https://repo.reqad.net/REQAD-RPM-GPG-KEY-PUBLIC gpgcheck=1 enabled=1 ' > /etc/yum.repos.d/reqad.repo - Update PHP:
yum clean all && yum update 'php*' - Restart Apache or PHP-FPM.
Two changes in the PHP 5.x builds are visible. When a script runs out of memory, the PHP process now ends at once instead of carrying on. On PHP-FPM the visitor sees a 502 instead of a 500, and the error is still written to the error log. Session upload progress (session.upload_progress) is turned off.
PHP 5.4 and 5.6 have been end-of-life for years. These packages close this hole, but sites still on them should move to a supported version.
If you cannot update immediately
In the PHP project's words: while only an update is a complete solution, the following measures reduce exposure to specific attack paths but do not make an installation safe.
- memory_limit=-1, set so that applications can't change it (
php_admin_valuein the FPM pool or the Apache configuration), and check that no pool, folder or application sets a limit again. Note that this lets a single script use all of the server's memory. - A low post_max_size: 8M for applications without uploads, 32M where uploads are needed, with
upload_max_filesizebelow it. - Request limits at the web server or proxy: request size, number of fields, multipart parts and headers. These limits must also apply to requests without a usable Content-Length.
- session.upload_progress.enabled=0 in php.ini or the FPM pool (not
ini_set()or.user.ini), then restart every worker. - On PHP 8.5:
fatal_error_backtraces=0, then restart every worker. - Remove invalid or deprecated settings that applications apply on each request.
The advisory has the full list and details. Then update as soon as you can.