Your application can pass code review, escape its inputs, and keep its auth logic tidy enough to make an auditor briefly believe in humanity. Then the runtime underneath it can still hand an unauthenticated visitor a crowbar. That is the uncomfortable lesson of PHP2Shell, the paired PHP flaws tracked as CVE-2026-109618 and CVE-2026-109619.
The headline risk is not that every PHP app suddenly forgot how to be secure. It is that the PHP engine itself is in the blast path, which means clean application code may be sitting above an unsafe execution layer. Patch notes usually read like appliance manuals, but when a core interpreter gets critical fixes, the basement has started making noises.
What happened below the framework, according to CISA and Huntress
CISA said PHP2Shell allows unauthenticated remote code execution in PHP and affects all PHP installations serving web requests. Huntress said exposed deployments include PHP-FPM, Apache with mod_php, php-cgi, FrankenPHP, and LiteSpeed. The crucial detail for developers is sequencing: Huntress described a mod_php exploit path that can trigger "before any application code runs." That is security theater's least favorite plot twist, because your controller never gets a chance to look brave.
@title PHP2Shell request path
@source CISA
@source Wiz Blog
Web request
│
▼
PHP core
│
├→ Code execution
└→ Memory disclosure
@caption The risky step happens in PHP itself, below the application code teams usually review.
BleepingComputer reported that PHP planned emergency security updates for October 21 at 14:00 UTC, with both flaws rated 9.2 under CVSS v4.0. Huntress later said the PHP team released PHP 8.5.12, 8.4.27, 8.3.36, and 8.2.35 around 9:30 am ET on October 21. CISA also said it had not observed exploitation at the time of publication, which is useful context, not a permission slip to wait until the scanner stops screaming.
Why clean app code does not save you, according to Wiz and SANS
Wiz said the vulnerabilities sit in PHP itself, independent of whatever application is running above it. Wiz also said versions going back to PHP 5.4 are affected by at least one of the flaws, and that the bugs can let unauthenticated attackers run code or read process memory. That memory may hold passwords, authentication tokens, API keys, and certificates, which is basically the runtime equivalent of leaving the filing cabinet open during a fire drill.
SANS similarly described the issue as a PHP core vulnerability and said default PHP installations were expected to be vulnerable. It also warned that only PHP 8 was expected to receive a patch, because older versions are no longer supported. This is where legacy software becomes less a business continuity strategy and more a haunted antique with a network cable.
The response window, according to The Record and BleepingComputer
The Record reported that the bugs can allow remote code execution on unpatched websites and that hundreds of websites were taken offline as administrators reacted. It also quoted PHP's security team urging users to prepare so they could upgrade as soon as the release became available. That is the responsible version of panic: short, scheduled, and preferably followed by a maintenance window instead of an incident bridge.
BleepingComputer reported that the flaws were tracked as CVE-2026-109618 and CVE-2026-109619, and that researchers believed they affected PHP versions 5, 6, 7, and 8. SANS said early guidance suggested setting session.upload_progress.enabled to Off as a partial mitigation, but the word partial is doing real work there. Mitigation buys time. Patching pays the bill.
What actually changes for teams, according to CISA and SANS
CISA told organizations to identify and inventory systems running any PHP version, then prioritize patching internet-facing systems. It also warned that PHP's "prevalence may not be directly observable," because it can be embedded as a component of other software. Translation: if your asset inventory only knows about the app name, not the runtime underneath it, congratulations, you have invented hide and seek for incident response.
SANS noted that many open source firewall and router products use PHP and advised not exposing web admin interfaces to the internet. That advice is not glamorous, but neither is explaining why an administrative panel became the front door. Runtime inventory should cover PHP-based web applications, content management systems, web admin interfaces, and vendor software where PHP may be bundled underneath the product name.
What it actually means for you
If you run PHP serving web requests, move to PHP 8.5.12, 8.4.27, 8.3.36, or 8.2.35 as CISA recommends. If you are on PHP 8.1 or earlier, treat that as an unsupported runtime problem, not merely a developer backlog item. The lesson for builders is bigger than this pair of CVEs: application security has to include the interpreter, the web server integration, and the quiet platform dependencies that execute code before your code gets to introduce itself.
The next thing to watch is whether downstream products issue their own updates and whether asset inventories can actually find PHP where it is tucked inside other software. No need for doom music. Just patch the runtime, verify the running version, reduce unnecessary internet exposure, and add language engines to the list of things your security program treats as production infrastructure instead of plumbing.
Sources
- Rapid Response: php2shell, Leaked Critical PHP Vulnerabilities (CVE-2026-109618 & CVE-2026-109619)
- Critical Vulnerabilities in PHP Require Immediate Patching
- PHP2Shell: AI uncovers critical RCE vulnerabilities affecting 70% of the Internet
- Hundreds of websites taken offline as concern grows over two PHP vulnerabilities
- PHP warns admins of two critical flaws, emergency patches coming tomorrow