PHP’s October 2026 emergency fixes: what 8.4.27 changes.
Two critical PHP engine flaws, one plain-language explanation: affected versions, discovery, server impact and how to verify the fix.
THE SOURCE RECORD / php
Read the official source ↗- Advisory publication
- 21 Oct 2026 13:34 UTC
- Source updated
- 21 Oct 2026 13:34 UTC
- Source checked
- 22 Oct 2026 22:15 UTC
- Source record status
- Active
- Vendor
- PHP
- Product
- PHP
- Source severity
- critical
- CVE identifiers
-
- CVE-2026-109619
- Affected products / versions
-
- php-src: < 8.2.35
- php-src: < 8.3.36
- php-src: < 8.4.27
- php-src: < 8.5.12
- Vendor-stated fixes
-
- php-src: 8.2.35
- php-src: 8.3.36
- php-src: 8.4.27
- php-src: 8.5.12
- Source-recommended action
-
- Apply the vendor's fixes for the PHP branch in use and verify the official advisory before upgrading.
- Known exploitation
- Not stated by source
Fix details follow this vendor's disclosure. Distribution packages may use different revisions for backported fixes.
THE SOURCE RECORD / php
Read the official source ↗- Advisory publication
- 21 Oct 2026 13:34 UTC
- Source updated
- 21 Oct 2026 13:34 UTC
- Source checked
- 22 Oct 2026 22:15 UTC
- Source record status
- Active
- Vendor
- PHP
- Product
- PHP
- Source severity
- critical
- CVE identifiers
-
- CVE-2026-109618
- Affected products / versions
-
- php-src: < 8.2.35
- php-src: < 8.3.36
- php-src: < 8.4.27
- php-src: < 8.5.12
- Vendor-stated fixes
-
- php-src: 8.2.35
- php-src: 8.3.36
- php-src: 8.4.27
- php-src: 8.5.12
- Source-recommended action
-
- Apply the vendor's fixes for the PHP branch in use and verify the official advisory before upgrading.
- Known exploitation
- Not stated by source
Fix details follow this vendor's disclosure. Distribution packages may use different revisions for backported fixes.
THE SOURCE RECORD / ubuntu
Read the official source ↗- Ubuntu notice publication
- 21 Oct 2026 13:56 UTC
- Source updated
- Not stated by source
- Source checked
- 22 Oct 2026 22:15 UTC
- Source record status
- Active
- Vendor
- Canonical
- Product
- php8.1, php8.3, php8.5
- Source severity
- Not stated by source
- CVE identifiers
-
- CVE-2026-109618
- CVE-2026-109619
- Affected products / versions
-
- Ubuntu 22.04 LTS (jammy)
- Ubuntu 24.04 LTS (noble)
- Ubuntu 26.04 LTS (resolute)
- Ubuntu 26.10 (stonking)
- Vendor-stated fixes
-
- Ubuntu 22.04 LTS (jammy): php8.1 8.1.2-1ubuntu2.28
- Ubuntu 24.04 LTS (noble): php8.3 8.3.6-0ubuntu0.24.04.13
- Ubuntu 26.04 LTS (resolute): php8.5 8.5.4-0ubuntu1.5
- Ubuntu 26.10 (stonking): php8.5 8.5.9-0ubuntu2.1
- Source-recommended action
-
- In general, a standard system update will make all the necessary changes.
- Use the Ubuntu package version for your release; vendor backports can fix a flaw without matching the upstream version number.
- Known exploitation
- Not stated by source
Fix details follow this vendor's disclosure. Distribution packages may use different revisions for backported fixes.
UPSTREAM VERSION COMPARISON
Where does a version sit?
For CVE-2026-109618 and CVE-2026-109619. Advisory checked 22 October 2026.
Enter a version manually. This tool does not connect to or fingerprint a server.
Distribution packages may backport patches. Confirm the vendor’s package revision and the web-serving runtime after restarting workers; CLI PHP can differ.
The short version
Source checked: 22 October 2026. Advisory published: 21 October 2026.
PHP published emergency fixes for CVE-2026-109618 and CVE-2026-109619. Both can permit remote code execution without signing in. These are PHP engine problems, not simply an application displaying an error.
What caused the vulnerability?
For CVE-2026-109618, running out of memory could interrupt PHP while request data was only partly prepared. During cleanup, the engine could use that invalid state. Think of a workshop that starts dismantling a machine before its assembly checklist is complete.
The patch changes how memory exhaustion is handled: PHP can stop at a safe point, or terminate immediately when a higher limit is reached, rather than letting cleanup operate on incomplete state. Technical advisory: out-of-memory corruption.
For CVE-2026-109619, a worker could keep references to memory belonging to an earlier request after that memory was freed. A later request could use those stale references before normal initialization reset them. Imagine an old desk label pointing to a drawer whose contents have already changed. Technical advisory: stale global state.
How was it identified?
The PHP Foundation describes a sequence of audits and reports. A developer encountered early signs of the memory-exhaustion problem while addressing a finding from a 2024 Quarkslab audit. In August 2026, Calif and OpenAI independently reported the same root cause, followed by further research. Demonstrated attack paths established the seriousness of the issue. Discovery, reproducibility and impact validation are separate steps. PHP Foundation’s account.
Which systems are affected?
PHP says web-serving installations must be treated as exposed, including PHP-FPM, Apache mod_php, CGI, FrankenPHP and LiteSpeed. Its strongest demonstrated application-independent path is on mod_php, before application code runs. Exposure and reliability depend on deployment details; a PHP warning alone does not prove exploitation.
The upstream fixed releases are:
| Branch | Fixed release |
|---|---|
| PHP 8.2 | 8.2.35 |
| PHP 8.3 | 8.3.36 |
| PHP 8.4 | 8.4.27 |
| PHP 8.5 | 8.5.12 |
Older branches need a supported upgrade or a vendor-confirmed backport. Distribution package revisions may contain a backport without matching these upstream version strings. Official PHP release advisory.
Why an older-looking vendor version can be patched
Ubuntu’s USN-8948-1 notice lists 8.5.4-0ubuntu1.5 as the fixed package for Ubuntu 26.04 LTS. It carries the security patches without adopting the upstream 8.5.12 version string. Compare the full vendor revision with the vendor notice, rather than relying on php -v alone.
What should a site owner do?
Arrange the vendor’s patched package, test compatibility, deploy it and restart the relevant workers. Verify the version of the web-serving runtime, not only the command-line executable: they can differ. Ask a managed host to confirm its patched package and service restart.
Updating is the complete remedy. Configuration workarounds are not equivalent to a fix. Hiding error messages does not repair the underlying memory handling.
Try the idea simply
Use the version comparison on this page with a manually supplied version. It compares against the published upstream minimums for these two CVEs; it does not scan a server or verify backported packages.
For a video, animate two trays labelled “current request” and “released memory.” Show why a leftover reference is unsafe, then show the patched lifecycle. Use diagrams and dummy values rather than sending exploit traffic. Label this as a model of the mechanism, not a reproduction of remote code execution.