21 Oct 2026 Two critical RCE bugs in PHP core (CVE-2026-109618, CVE-2026-109619). Fixed in 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12. Is my PHP patched? →
Checklamp
Support timeline · checked against php.net

PHP end of life: which branches still receive patches

Published · updated

An out-of-date PHP build can be updated. An end-of-life branch cannot: there is no package, no advisory and no patch for the next critical bug. These are the dates that decide which of the two situations you are in.

Passive. Public responses only, nothing is attacked. No account. The result is on the page. Honest: if a value is hidden, we say so instead of guessing.
Reading public responses — usually 5–20 seconds

Supported branches (php.net, October 2026)

Each branch gets two years of active support — bugs and security fixes in regular point releases — followed by two years of security-only support for critical issues. After four years the branch is closed.

BranchInitial releaseActive support untilSecurity support until
PHP 8.520 Nov 202531 Dec 202731 Dec 2029
PHP 8.421 Nov 202431 Dec 202631 Dec 2028
PHP 8.323 Nov 202331 Dec 202531 Dec 2027
PHP 8.28 Dec 202231 Dec 202431 Dec 2026

Closed branches: 8.1 reached end of life on 31 December 2025, 8.0 on 26 November 2023, 7.4 on 28 November 2022. Everything older has been unsupported for years.

What “security support only” means in practice

Security-only support is not slower support — it is narrower. The branch still receives fixes for critical issues, but no ordinary bug fixes, and releases appear only when someone reports something serious. Two things follow that people often miss:

  • 8.2 is the last supported branch to be patched for this month's RCEs, and it closes on 31 December 2026. After that date a new critical bug will arrive with no fix at all — which is exactly the situation owners of 8.1 sites are in today.
  • End-of-life branches still get reported vulnerabilities. This month PHP published minimal source backports for 7.4, 8.0 and 8.1 — you can only use them by building PHP yourself, which almost nobody running a website is set up to do.

Why an outdated branch is a business problem

  • It is unpatched by definition. With CVE-2026-109618 and CVE-2026-109619 there is no configuration that closes the hole — no header, no firewall rule, no session.upload_progress setting. The build is the fix.
  • Compliance takes the date literally. PCI DSS requires critical patches to be applied within a defined period; “the vendor no longer supports it” is not an accepted exception for a system that handles card data.
  • Hosting panels drop old builds. Over time cPanel, Plesk and shared hosts remove end-of-life branches from their selectors, and a site that depends on one either breaks or stops receiving updates with nobody noticing.
  • The upgrade gets more expensive with time. Two or three major versions of deprecations in one step is a project. One version at a time is maintenance.

How to move off an end-of-life branch

  1. Inventory first. Find every application on the server and the branch each one uses: ls /etc/php on Debian-family systems, the panel's per-site PHP selector, your containers. One server often serves three sites on three branches.
  2. Create a copy and test there. A staging copy of the site on the target branch, with a database snapshot. Most breakage shows up on the first page load: removed mysql_* calls in old code, deprecated dynamic properties, changed string functions.
  3. Check the platform, not just PHP. WordPress, Bitrix, Laravel and every plugin have their own supported range. Running a platform outside its supported PHP range is how a working site turns into an unsupported one.
  4. Move branch by branch. 8.1 → 8.2 → 8.3 in sequence, testing between steps, is cheaper than jumping to the newest version and debugging everything at once.
  5. After the switch, verify on the server (php -v in the pool the site uses) and re-run an outside check to confirm the published version moved too.

If the site discloses an end-of-life version, our checker flags it as critical. If it discloses nothing, the checker says so and you read the version on the server — that is the only honest path.

Questions

Is PHP 8.2 still safe to run?

It still receives critical security fixes until 31 December 2026, so it is supported today — with two months left. Plan the move to 8.3 or 8.4 now; do not start it in January.

Can I install a security patch on an end-of-life branch from a third party?

Sometimes distributions or commercial vendors maintain their own backports for a fee. That is a maintenance contract with a named owner, not a default. Without one, the branch stays open.

Does hiding the PHP version defer an upgrade?

No. Hiding the header removes a signal, not a vulnerability. Attackers who target a specific bug do not need the header to find out what you run.

What about PHP 7.4 and 8.0 — is there any fix for the October 2026 RCEs?

PHP published minimal source backports for 7.4, 8.0 and 8.1. Using them means building PHP from source and maintaining that build yourself; for a website the practical answer is an upgrade.