UPDATE: PHP Releases Critical PHP Security Update to Mitigate Vulnerabilities

Executive Summary

PHP has released an advisory on 21 October 2026 detailing the vulnerabilities listed above, confirming the severity of CVE-2026-109618 and CVE-2026-109619. PHP is encouraging affected users to update to PHP 8.5.12, 8.4.27, 8.3.36 or 8.2.35. PHP 8.1 and older will not receive relevant update packages to mitigate CVE-2026-109618 and CVE-2026-109619, but some distributions and LTS vendors provide backported fixes. PHP encourages users to contact relevant vendors for details, or upgrade to a supported version.

The following mitigations strategies are pulled directly from PHP:

If you cannot update immediately: while only an update is a complete solution, the following measures reduce exposure to specific attack paths but do not make an installation safe.

RCE via OOM corruption (CVE-2026-109618):

  • Set memory_limit=-1, preferably in a way applications can’t override, such as php_admin_value in the FPM pool or Apache configuration, and check that no pool, directory or application setting puts a finite limit back. This removes the controllable PHP memory limit failure, but an underlying allocation failure can still reach the vulnerable path.
  • Set a low post_max_size. For applications that don’t require file uploads, set post_max_size = 8M. If file uploads are necessary, set post_max_size = 32M. Keep upload_max_filesize below post_max_size. Consider enforcing limits at the web server or proxy level for decoded request size, input field count, multipart part count, header count, and nesting depth. These limits must also cover requests without a usable Content-Length.
  • Use a container or cgroup limit as an availability boundary, preferably with a policy that kills only the affected worker. Do not substitute RLIMIT_AS or RLIMIT_DATA, as these can cause the vulnerable allocation failure.

RCE via stale global state (CVE-2026-109619):

  • Set session.upload_progress.enabled=0 and restart every worker. Use php.ini, an FPM pool or server configuration that applies before request parsing. Do not rely on ini_set() or FPM .user.ini. This blocks the confirmed session paths but not other variants.
  • On PHP 8.5, set fatal_error_backtraces=0 and restart every worker. This blocks the confirmed fatal backtrace path only.
  • Remove invalid or deprecated settings applied per request that emit diagnostics before initialization. Hiding diagnostics with error_reporting, display_errors or @ does not help.
  • Fix attacker-reachable fatal errors and execution timeouts, including failures in callbacks, upload or import processing and cleanup.

More Recent Blog Posts

Executive Summary Eight intermediate certificate authority (CA) certificates operated by eMudhra have been comprised, triggering an industry-wide response from browser vendors, including Firefox...

Executive Summary On 14 October 2026, Group-IB researchers published an in-depth analysis of KGB RAT. KGB RAT is a Remote Access Trojan (RAT)...

Executive Summary A large-scale cyberattack targeting refrigeration systems at French supermarkets has highlighted the risks of internet-exposed operational technology (OT), with attackers remotely...