By PHP Patch Assurance · Last updated: 2026-10-25 · Plain-text version
php2shell is the name given to two critical flaws in PHP core, CVE-2026-109618 and CVE-2026-109619 (CVSS 9.2), disclosed on October 21, 2026. They allow unauthenticated remote code execution: anyone on the internet can run code on an affected server, with no password and no login. Fixed PHP releases shipped the same day.
Two flaws in PHP itself — not in a plugin, theme or application — that let an unauthenticated attacker execute arbitrary code on a server running a vulnerable PHP version. Details leaked on October 20, 2026, attacks began on October 21, and PHP shipped emergency releases the same day, ahead of its scheduled slot.
Any site running PHP below the fixed releases. The flaw is in PHP core, so it is not limited to one web server or application.
| PHP branch | Vulnerable | Fixed release |
|---|---|---|
| 8.5 | below 8.5.12 | 8.5.12 |
| 8.4 | below 8.4.27 | 8.4.27 |
| 8.3 | below 8.3.36 | 8.3.36 |
| 8.2 | below 8.2.35 | 8.2.35 |
| Below 8.2 | all versions | none — end-of-life, upgrade required |
Check the version your server actually runs — php -v on the server, or the version your host reports. If it is below 8.2.35 on branch 8.2, below 8.3.36 on 8.3, below 8.4.27 on 8.4, or below 8.5.12 on 8.5, it is vulnerable. If your site hides its version, an external check honestly says INDETERMINATE; the read-only deep check gives a definitive verdict.
Check your site free Patch service
PHP 8.2.35, 8.3.36, 8.4.27 and 8.5.12, shipped October 21, 2026. Branches below 8.2 have no upstream fix.
| Does | Does not |
|---|---|
| Free external scan, no exploit probes | Label an end-of-life branch “patched” |
| Read-only deep check after ownership proof | Run exploit probes against your site |
| Verified patch for Docker hosts: $49, or $99 with rollback | Offer paid patching for non-Docker hosts |
| Snapshot and restore-test before any change; automatic rollback on a failed health check | Ask for your root, hosting-panel or CMS password |
| Work report with a SHA-256 integrity hash; full refund if the patch cannot be completed and verified, or the pre-patch state cannot be restored | Guarantee a site is secure — findings are as observed in documented checks |
Check the version your server actually runs — php -v on the server, or the version your host reports. If it is below 8.2.35 on branch 8.2, below 8.3.36 on 8.3, below 8.4.27 on 8.4, or below 8.5.12 on 8.5, it is vulnerable. If your site hides its version, an external check honestly says INDETERMINATE; the read-only deep check gives a definitive verdict.
Branches below 8.2 are end-of-life and have no upstream fix, so they cannot be patched in place. The options are a branch upgrade — one-click for Docker hosts, with the same snapshot, verify and rollback gates — or, as Japan's prime minister advised on October 21, 2026, temporarily taking the site offline until it can be upgraded.
Not necessarily. Most well-run sites hide their PHP version, so the free external scan reports INDETERMINATE rather than guessing. That is the honest answer, not a clean bill of health. The read-only deep check runs on your server after you prove ownership and settles it.
The patch itself is a supervised job inside a window you pick: snapshot and restore-test first, patch, verify the fix live, then a work report. If verification fails, the change reverts automatically. If we cannot complete and verify the patch, or cannot restore the pre-patch state, the fee is refunded in full.
If we get something wrong, we say so here: corrections & retractions.