PHP 8.1 end of life: why it’s now urgent for WordPress
PHP 8.1, 8.0 and 7.4 are end of life — and the critical PHP2Shell flaw got no official fix for them. Here are the support windows and how to upgrade safely.
By the Presscomet teamPublished 12 min read
On this page
Why PHP 8.1’s end of life suddenly matters
“End of life” has always sounded like a problem for later. Your WordPress site runs fine on PHP 8.1, nothing is obviously broken, and the next thing on the list is always more urgent. For years that was a defensible gamble. In October 2026 it stopped being one.
When a PHP branch reaches end of life, the PHP project stops shipping releases for it — no bug fixes, and crucially no security fixes. The branch isn’t deleted from the internet; it just stops getting maintained. As long as no serious hole turns up, you don’t notice. The moment a serious hole turns up, you’re on your own.
That moment arrived. PHP2Shell — the pair of critical flaws CVE-2026-109618 and CVE-2026-109619, both rated CVSS 9.2 — is an unauthenticated remote-code-execution bug in the PHP runtime itself. On 21 October 2026 the PHP project released fixes for every supported branch: 8.5.12, 8.4.27, 8.3.36 and 8.2.35. For the end-of-life branches — 7.4, 8.0 and 8.1 — there was no official binary release. The project published source-only backports on dedicated branches and left it to Linux distributions and hosting vendors to build packages from them. Anything older than 7.4 got nothing at all.
- EOL branches
- 8.1 · 8.0 · 7.4 (and older)
- PHP2Shell fix for them
- Source-only backport — no official binary
- Supported & fixed
- 8.5.12 · 8.4.27 · 8.3.36 · 8.2.35
- WordPress recommends
- PHP 8.3 or newer
- PHP 8.2 security fixes end
- 31 Dec 2026
The practical upshot: if your site was on an EOL branch, getting patched meant hoping your specific host or distro had built one of those backports — and most owners had no quick way to tell. Had you been on a supported branch, you’d have taken an ordinary update the same day. That is the whole argument for staying current, delivered in a single afternoon.
“It still works” and “it’s still safe” are different claims
PHP support windows, branch by branch
Each PHP branch gets roughly two years of active (bug-fix) support, then two more of security-fix-only support, then nothing. The dates below come from php.net’s supported-versions page. Pick your branch to see exactly where it stands and what it means for PHP2Shell.
Interactive lookup
Is my PHP version still supported?
PHP 8.1
End of life- Support
- No longer supported by the PHP project
- PHP2Shell fix
- Vendor/distro backport only
Only patched if your host or Linux distribution backports fixes. Upgrade.
Dates from php.net’s supported-versions page, checked 2026-10-23. Distributions such as Ubuntu and Red Hat support their own PHP packages on their own schedule.
Here’s the same information as a timeline, so you can see the cliff edges coming:
| Branch | Active support | Security fixes until | Status |
|---|---|---|---|
| 8.5 | to 31 Dec 2027 | 31 Dec 2029 | Newest |
| 8.4 | to 31 Dec 2026 | 31 Dec 2028 | Recommended target |
| 8.3 | ended 31 Dec 2025 | 31 Dec 2027 | Supported |
| 8.2 | ended | 31 Dec 2026 | Security-only |
| 8.1 | ended | ended 31 Dec 2025 | End of life |
| 8.0 | ended | ended 2023 | End of life |
| 7.4 | ended | ended 2022 | End of life |
By end of 2026
PHP 8.2 leaves support
After 31 December 2026, PHP 8.2 gets no more security fixes and joins the EOL list. If you’re on it, plan the move to 8.3 or 8.4 during 2026.Now
PHP 8.3 and 8.4 are the safe choices
WordPress.org recommends 8.3 or greater. PHP 8.4 is supported with security fixes to the end of 2028 and is a comfortable target for most sites.Already past
PHP 8.1, 8.0 and 7.4 are end of life
No official upstream fixes. These are the branches PHP2Shell left without an official binary release. Treat anything on this line as needing an upgrade.
A low version number can still be patched
8.3.6, and Ubuntu 22.04 keeps patching its PHP 8.1. If your host is one of these, “supported” means “supported by your vendor” — ask them which advisory they applied and when.What actually happens if you stay on EOL PHP
The risk of an unsupported runtime isn’t abstract. It plays out in a predictable sequence, and PHP2Shell walked through every step of it in a single week.
- A flaw is found and disclosed. It affects every branch, old and new, because the buggy code has been there for years — PHP2Shell is believed to reach back to PHP 5.4 (2012).
- Supported branches get a fix immediately. Sites on 8.2, 8.3, 8.4 and 8.5 took an ordinary update on day one.
- EOL branches get a fix maybe, eventually, from someone else. For PHP2Shell, 7.4/8.0/8.1 got source-only backports; whether you could install a fix came down to whether your particular distro or host built a package — and when.
- Attackers scan for the stragglers. Cloudflare reported attempts against PHP2Shell climbing from thousands to millions after disclosure; exposure scans found over a million internet-facing PHP hosts still on EOL versions. Unpatched servers are exactly what mass scanning is for.
There’s a second cost that has nothing to do with any single CVE. Plugin and theme authors eventually drop support for old PHP, so staying on 7.4 or 8.1 slowly cuts you off from updates you do want — including the security updates that fix the WordPress-layer problems. The longer you wait, the bigger the jump becomes and the more likely something breaks when you finally make it. An old PHP version is a debt that compounds.
Government guidance drew the same conclusion. For organisations that can’t patch immediately, or that are still running PHP 8.1 or older, CISA’s advice during PHP2Shell was to take the affected systems offline until they could be updated or upgraded. That is how seriously regulators now treat an unsupported runtime facing a live, critical flaw. If you want the full picture of PHP2Shell and how it reaches WordPress, start with our PHP2Shell and WordPress guide, and see our WordPress security guide for the wider hardening checklist.
So, are you affected?
Answer three questions and this checker — which runs entirely in your browser and sends nothing anywhere — will tell you where an EOL version leaves you against PHP2Shell:
Interactive checker
Am I affected by PHP2Shell?
Runs in your browser · nothing is sent
- 1. PHP version
- 2. Server API
- 3. Hosting
- 4. Verdict
How to check which PHP version you’re on
The number that matters is the PHP that serves web requests for your site, not whatever a command line happens to report. The quickest reliable source is inside WordPress itself:
- wp-admin › Tools › Site Health › Info › Server. Read the PHP version row — that’s the exact patch level answering your visitors — and note PHP SAPI too (
fpm-fcgi,apache2handlerorlitespeed). - cPanel. Open MultiPHP Manager or Select PHP Version; the version column shows the branch per domain, such as
ea-php81for PHP 8.1. - Managed host dashboard. Usually under the site’s Tools or Settings page as “PHP version” or “PHP engine”.
A very old version also announces itself: WordPress shows a “PHP Update Required” box on the Dashboard, and the Site Health Status tab flags an outdated runtime. For the full set of methods, including the command-line checks for your own server, see how to check and update your PHP version in WordPress.
How to upgrade from PHP 8.1 to 8.3 or 8.4
The switch itself is a dropdown in your hosting panel. The work is making sure nothing on your site depends on code the newer PHP removed. A safe order:
- Pick a target. Go to PHP 8.4 if your plugins declare support for it, or 8.3 if you want the version WordPress.org has recommended longest. Both are supported for years yet; don’t stop at 8.2, which leaves support at the end of 2026.
- Back up files and database and keep a copy off the server.
- Update WordPress core, plugins and themes so you’re testing the newest code against the new PHP. Replace any plugin with no update in the last couple of years — those are the usual cause of fatal errors on new PHP.
- Test on a staging copy. Switch staging to the new version, then click through the homepage, a post, forms, login and any checkout or membership flow.
- Switch the live site in the same panel, re-test, and watch
wp-content/debug.logfor newFatal errorlines.Deprecatednotices are warnings, not breakage. - Keep the old version one click away so you can roll back in a minute if something important breaks — then fix it on staging and try again within days, not months.
Don’t roll back onto an unpatched 8.1
The mechanics differ a little by host. We have step-by-step walkthroughs for the two most common setups: updating your PHP version in cPanel and updating PHP on an Ubuntu or Debian server. On a managed host you may not control PHP at all — in which case your job is to confirm they’ve patched and upgraded it for you; our what to ask your host guide has a copy-paste email.
The option with no PHP version to track
PHP upgrades never stop. A new branch lands every year, each one supported for about four, and every few years a flaw like PHP2Shell turns the calendar into an emergency. For most site owners the sensible answer is to put that job on a managed host that patches and upgrades PHP for them — and to actually check they do.
There’s a more structural answer, too. Most WordPress sites are content sites: pages change a few times a week and are read thousands of times a day. Running PHP on every one of those requests means every PHP branch, every end-of-life date and every PHP flaw is your problem. Take PHP out of the request path and all of that goes with it.
That’s what Presscomet is: the same wp-admin, block editor, permalinks and REST API you already know, rebuilt to run on Node.js with a single SQLite file and no PHP runtime. There’s no PHP version to track, no end-of-life date to watch, and the entire PHP class of vulnerabilities — PHP2Shell included — simply doesn’t apply, because PHP isn’t there.
What Presscomet does — and doesn’t — change
Dropping PHP removes PHP’s problems, not security in general. Presscomet runs Node.js, has its own dependencies and its own admin login to protect, and those still need updates — it is not “unhackable”. It also doesn’t execute PHP, so WordPress plugins and themes don’t run (the common jobs — SEO, forms, SMTP, redirects, custom fields — are built in instead), and WooCommerce stores aren’t supported. Compare the details on Presscomet vs WordPress.
If an endless PHP-upgrade treadmill is the part of WordPress you’re tired of, check your site against Presscomet — the migration only reads your public site and lists what would move over, so trying it changes nothing on your server. Or read Can you run WordPress without PHP? for the longer version of the idea.
Sources
Facts checked against these sources on October 24, 2026. Things change quickly; the vendor advisory always wins.
- [1]Supported versions — PHP.net
- [2]Server requirements (recommends PHP 8.3+) — WordPress.org
- [3]PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35 security releases — PHP.net
- [4]GHSA-w8hw-w9fx-j79w (CVE-2026-109618) — php-src on GitHub
- [5]GHSA-6wmf-4rv5-p3rp (CVE-2026-109619) — php-src on GitHub
- [6]PHP2Shell advisory (detection and interim mitigations) — Sophos
- [7]PHP2Shell FAQ — watchTowr
- [8]USN-8948-1: PHP vulnerabilities — Ubuntu
- [9]PHP2Shell fixes by distro, control panel and PHP version — Digital Applied
- [10]CVE-2026-109618 / CVE-2026-109619 analysis — Horizon3.ai
- [11]Known Exploited Vulnerabilities catalog — CISA
Frequently asked questions
Is PHP 8.1 end of life?
Yes. PHP 8.1 reached the end of its support window on 31 December 2025, so the PHP project no longer publishes releases for it. PHP 8.0 (end of 2023) and 7.4 (end of 2022) are older still. A new vulnerability in any of these branches gets no official upstream fix; you depend on your host or Linux distribution backporting it, or you upgrade.
Is PHP 8.1 still safe to use?
Only if someone other than the PHP project is patching it for you. Some Linux distributions and hosting panels (for example Ubuntu 22.04, which ships PHP 8.1) backport security fixes to their own 8.1 builds without changing the version number. If you are not on a vendor that does this, PHP 8.1 is unpatched and should be upgraded. WordPress.org recommends PHP 8.3 or newer.
Is PHP 7.4 end of life for WordPress?
PHP 7.4 reached end of life on 28 November 2022. It is the oldest version WordPress still runs on, and WordPress shows an admin warning when you use it. It received no official PHP2Shell fix, so unless your host backported one you should move to PHP 8.3 or 8.4.
When does PHP 8.2 reach end of life?
PHP 8.2 stopped getting active (bug-fix) support at the end of 2024 and receives security fixes only until 31 December 2026. After that it joins the end-of-life list. Plan to move to 8.3 or 8.4 before the end of 2026.
Why does end of life matter more after PHP2Shell?
PHP2Shell (CVE-2026-109618 and CVE-2026-109619, both CVSS 9.2) is a critical, unauthenticated remote-code-execution flaw in PHP itself. Supported branches got fixed binaries on 21 October 2026 — 8.5.12, 8.4.27, 8.3.36 and 8.2.35. For 7.4, 8.0 and 8.1 the PHP project published source-only backports instead of official releases, leaving most site owners dependent on a distro or host build. It was a live demonstration that EOL PHP is a security liability, not a theoretical one.
How do I upgrade from PHP 8.1 to 8.3?
Back up files and database, update WordPress core, plugins and themes, test on a staging copy, then switch the PHP version in your hosting panel (cPanel MultiPHP Manager, Select PHP Version, Plesk, or your host dashboard). Test key pages and watch the error log, and keep the old version one click away so you can roll back. Our check-and-update guide has the full steps.
Will upgrading PHP break my WordPress site?
It can if a plugin or theme relies on functions newer PHP removed (such as create_function() or each(), both gone in PHP 8.0). That is why you update everything first and test on staging. Most sites on maintained plugins upgrade from 8.1 to 8.3 with no visible change, and newer PHP is usually as fast or faster.
Does Presscomet have a PHP version to keep upgrading?
No. Presscomet runs the WordPress admin, editor, URLs and REST API on Node.js with no PHP runtime, so there is no PHP branch to track and the PHP class of vulnerabilities, including PHP2Shell, does not apply. It is not immune to security issues in general — Node.js, its dependencies and the server it runs on still need patching — and it does not run PHP plugins or support WooCommerce stores.
Presscomet keeps your wp-admin, editor, URLs and content, and serves pages without PHP or MySQL. Check your site for free, then migrate in one click — your old site is only ever read.
Keep reading
- SecurityPHP2Shell and WordPress: are you affected, and how do you fix it?
Two critical bugs in PHP itself put almost every WordPress site on an affected runtime until the host patches it. Here’s what happened in plain English, a checker that tells you whether you’re affected, and step-by-step fixes for every kind of hosting.
- SecurityHow to check and update your PHP version in WordPress (2026)
Your PHP version decides whether your WordPress site still gets security fixes. Here’s how to find it in under a minute, what’s still supported, and a safe way to upgrade without breaking anything.
- HostingIs your WordPress host patched for PHP2Shell? What to ask (with an email template)
On most WordPress sites you can’t patch PHP yourself — your host has to. Here’s who is responsible on each kind of hosting, the four questions that get you a real answer, and a ready-to-send email.