PHP2Shell went live before the patch. Fix your web touchpoints now
Exploits hit before the patch. Millions of PHP hosts likely stayed vulnerable after. Here’s what actually helps—and what email teams should fix first.
By Mara Quinn· Email Vox · 25 Oct 2026

Key facts
- ■Amazon saw first PHP2Shell exploitation on October 17, days before disclosure.
- ■Patches arrived October 21 at 14:00 UTC in PHP 8.5.12, 8.4.27, 8.3.36, 8.2.35.
- ■Cloudflare logged millions of exploit attempts within hours post‑announcement.
- ■Censys and VulnCheck saw 2.6–3 million PHP hosts; most appeared unpatched or EoL.
- ■CISA urged immediate updates; researchers say no full workaround existed pre‑patch.
- ■Fake PoCs and prankware circulated, but real actors are iterating toward reliable RCE.
Timeline
- October 17First exploitation against honeypot observed by Amazon while flaws under embargo
- October 20Both issues leaked online; PoCs begin circulating before patches
- October 21PHP releases fixes in 8.5.12, 8.4.27, 8.3.36, 8.2.35 (14:00 UTC)
- October 22Censys tracks nearly 3 million internet-facing PHP hosts; most appear unpatched
Attackers started poking at PHP2Shell days before the fix went live. By the time the patches landed, probes had already surged to millions. If your email stack touches PHP anywhere—from unsubscribe pages to webhook receivers—this isn’t a drill.
What happened
Amazon reported the first PHP2Shell exploitation attempt on October 17, while the flaws were still under embargo, originating from a commercial anonymization network (SecurityWeek). Roughly 12 hours before public disclosure, it saw multiple proof-of-concept (PoC) variants hit from additional anonymized infrastructure, suggesting more than one threat actor.
Both issues—tracked as CVE-2026-109618 and CVE-2026-109619—leaked online on October 20, speeding PoC circulation before fixes were ready (SecurityWeek). The PHP project shipped emergency updates on October 21 at 14:00 UTC in versions 8.5.12, 8.4.27, 8.3.36, and 8.2.35, stating that only updating fully protects affected servers (The Hacker News).
Cloudflare said it saw “thousands” of exploit attempts in the 10 hours before public announcement, jumping to “tens of thousands” in the first 45 minutes after, “hundreds of thousands” within two hours, and “millions now,” according to CEO Matthew Prince quoted early Thursday (SecurityWeek). Hadrian, Patchstack, and others also logged activity before patches were available.
WatchTowr observed mass exploitation attempts shortly after release, but noted many PoCs “don’t work at all,” crash targets, or only test timing differences, per Jake Knott’s statement (SecurityWeek). Despite the sloppiness, Amazon stated PHP2Shell is “now being broadly exploited in the wild.”
Censys saw 2.58 million internet-facing hosts on October 21, with 1.58 million reporting identifiable PHP versions and approximately 1.57 million still unpatched (SecurityWeek). By October 22, it tracked nearly 3 million PHP hosts. VulnCheck’s view topped 2.6 million PHP hosts, “nearly all” vulnerable, with at least 1 million running end-of-life (EoL) versions.
VirusTotal counted roughly 5.1 million IPs running PHP overall but only 1.1 million advertising a version in headers; of those, about 272,000 ran a supported version, while approximately 758,000 were EoL (PHP 5.4–8.1) (SecurityWeek). It said about 920,000 of these hosts were in the US, concentrated on providers like AWS, DigitalOcean, Alibaba, OVHcloud, and Hetzner.
CISA urged immediate upgrades to the fixed versions on Wednesday, echoing that the flaws allow unauthenticated remote code execution (RCE) in the PHP runtime itself, independent of any specific application (SecurityWeek; The Hacker News).
The background
The pair of vulnerabilities—colloquially “PHP2Shell”—live in the PHP runtime, meaning even a barebones site can be exposed if its web server executes PHP before application-level checks. That runtime placement is why the PHP team offered no official workaround ahead of release (The Hacker News).
Security researchers rated the bugs 9.2/10 and warned that common environment toggles won’t fully prevent exploitation. One firm that had suggested a stopgap later clarified that setting alone “is not enough on its own,” reiterating only the official updates close the holes (The Hacker News).
BlueVoyant’s CISO John Harbaugh cautioned that events like this surface “forgotten applications” and shadow PHP installs organizations don’t know about, complicating both discovery and patching (SecurityWeek). That aligns with VirusTotal’s finding that most observed versions were end-of-life and unlikely to receive upstream fixes.
ThreatLocker CTO Michael Jenkins warned that in some configurations, these bugs let attackers run code before security checks, justifying emergency updates and proactive compromise hunting (SecurityWeek). He advised using controls that limit what web-facing processes can launch or connect to as a backstop during and after patching.
Comparisons to Log4Shell resurfaced quickly. Forescout’s Sai Molige argued PHP2Shell could reach Log4Shell scale, but for a different reason: organizations will find PHP in “forgotten infrastructure” that lacks an upstream fix. Former hacker Marcus Hutchins estimated it’s “50% the way towards Log4J,” with worse direct exploitation but a shorter tail in third-party software (SecurityWeek).
As with other zero-days we’ve covered in the security hub at /category/security, the early wave included booby-trapped PoCs and prank code. JFrog saw fake exploits on GitHub, and VulnCheck reported at least one Chinese IP trying—and failing—to drop a webshell via PHP2Shell (SecurityWeek). The noise makes triage harder while real actors iterate.
What people are saying
Amazon said its sensors were targeted from anonymized infrastructure before public disclosure and that “PHP2Shell is now being broadly exploited,” highlighting multiple actors entering the fray (SecurityWeek). That timing suggests partial leaks or independent rediscovery ahead of the official announcement.
Cloudflare’s Matthew Prince quantified the surge: thousands of attempts pre‑announcement, tens of thousands within 45 minutes after, hundreds of thousands in two hours, and millions soon after (SecurityWeek). Those curves mirror how we saw attackers rush a Cisco email gateway zero‑day earlier this year, where exploitation also accelerated immediately after patch notes dropped—see our analysis on how attachments were weaponized in /news/cisco-patches-email-gateway-flaw-exploited-through-attachments.
WatchTowr’s Jake Knott played down some panic by noting many PoCs were broken, timing‑based, or crashy, but he still observed broad attempts seconds after release (SecurityWeek). Even low‑quality scanning clutters logs and masks real intrusions.
BlueVoyant’s John Harbaugh emphasized asset discovery: the slowest part is finding everything that needs patching, not the patches themselves (SecurityWeek). That resembles the cleanup dynamic we saw when a compromised backup service forced emergency shutdowns across tenants—see the incident breakdown in /news/connectwise-pulls-cloud-backup-after-173-m365-tenants-hit.
ThreatLocker’s Michael Jenkins recommended process‑level controls to restrict what PHP can access and launch, reminding teams that such hardening should persist post‑incident (SecurityWeek). Least privilege on web servers narrows blast radius if another runtime bug appears.
Censys, VulnCheck, and VirusTotal collectively warned the long tail is massive: millions of internet‑facing PHP servers, with a large fraction running versions that won’t ever see security updates. That’s the same structural risk we outlined when intermediate certificate failures briefly broke trust at scale—the patch gap creates outsized exposure until ecosystems update; revisit our explainer in /news/eight-emudhra-ca-keys-cracked-email-needs-patches-too.
What happens next
Short‑term, expect exploit quality to improve as attackers refine payloads and aim for webshell drops, credential theft, and lateral movement. Amazon already flagged pre‑disclosure scans, and Cloudflare counted millions of attempts in hours, signaling sustained interest (SecurityWeek).
Remediation will hinge on two tracks: upgrading PHP to 8.5.12/8.4.27/8.3.36/8.2.35, and isolating or decommissioning EoL installs that can’t be updated. VirusTotal’s and Censys’s numbers imply that providers hosting large slices of vulnerable fleets—AWS, DigitalOcean, Alibaba, OVHcloud, Hetzner—can blunt risk quickly with guided configuration pushes and WAF rules (SecurityWeek).
For email operations, teams should audit every PHP‑backed endpoint that touches subscribers or mail flows: unsubscribe links, preference centers, landing pages, pixel redirectors, inbound webhooks, and CRM plugins. Rotate secrets used by those components, capture request bodies for forensic review, and block unexpected egress from web hosts.
Medium‑term, expect clearer guidance from vendors and additional detections from EDR, WAF, and CDN providers. The PHP team and researchers were explicit that “no full workaround” existed before patches, and one widely shared mitigation was later walked back as insufficient (The Hacker News). Prepare for updated rulesets and IOCs as working exploit chains stabilize.
Long‑term, treat “How fast can we find everywhere we run X?” as a measurable capability separate from patching speed. Forescout’s Sai Molige framed that as the durable lesson from Log4j, and PHP2Shell’s runtime nature makes that discipline non‑optional (SecurityWeek).
The Email Vox take
Email Vox take
-
Patch the web first. If your unsubscribe pages, preference centers, webhook endpoints, or tracking redirects touch PHP, upgrade to PHP 8.5.12/8.4.27/8.3.36/8.2.35 now and log everything.
-
Hunt for “unknown PHP.” Inventory your domains, subdomains, and legacy microsites. Blocklist old images and shadow apps. Add WAF rules to rate-limit anomalous POSTs while you patch.
-
Contain blast radius. Lock PHP-FPM and webserver perms; restrict outbound egress from web hosts to only what your email stack needs. Rotate secrets used by email apps after patching and review logs for webshell checks.
Frequently asked questions
- what is php2shell?
- PHP2Shell is the nickname for two critical PHP remote code execution flaws (CVE-2026-109618 and CVE-2026-109619) that let unauthenticated attackers run code on web servers.
- are php2shell exploits happening now?
- Yes. Amazon, Cloudflare, and others saw exploitation attempts before and immediately after patches dropped, with activity jumping to millions of attempts within hours of disclosure.
- which php versions fix php2shell?
- PHP 8.5.12, 8.4.27, 8.3.36, and 8.2.35 contain the official fixes. CISA urged immediate updates to these releases.
- can i mitigate php2shell without patching?
- No full workaround exists. Temporary controls can reduce risk, but the PHP team and researchers say only updating fully protects servers.
- how many servers are still vulnerable?
- Censys and VulnCheck saw 2.6–3 million internet-facing PHP hosts after release, with roughly 1.5–2.6 million likely unpatched or end‑of‑life.
- did proof-of-concept code achieve rce?
- Many early PoCs were faulty or crashed targets, according to WatchTowr, but broad exploitation attempts are ongoing and improving.
- who’s most exposed to php2shell?
- Sites running outdated PHP, shared hosting at major providers, and “forgotten” apps without owners are at high risk, based on Cloudflare, VirusTotal, and expert comments.
- is php2shell like log4shell?
- Experts say it’s similar in scale risk but different in root cause: PHP is a runtime component, and many legacy systems lack an upstream fix.
Why this matters
Email programs depend on web infrastructure: unsubscribe flows, tracking redirects, webhooks, and preference centers often run on PHP. A runtime-level RCE means attackers don’t need app bugs to hijack those endpoints, plant webshells, or siphon tokens. That puts subscriber data, API keys, and sending reputation at risk—and turns compromised web servers into launchpads for phishing and business email compromise. PHP2Shell is a wake-up call to inventory every web-exposed piece that touches email, patch ruthlessly, and cut unnecessary permissions so the next runtime bug can’t spill into your mail stream.
Sources
Reporting draws on the public sources listed above. Spotted an error? Request a correction.
Follow-up coverage
Related coverage

Researchers say Microsoft tech support scam rode a Russian TDS
Researchers say a Russian-run TDS and thousands of Cloudflare links helped a Microsoft impersonation scam route victims at scale.
21 Oct 2026

Phishing takedown targets the cloud accounts behind the scams
A coalition disrupted infrastructure linked to more than a billion malicious messages, exposing how phishing services turn legitimate cloud tools into attack machinery.
9 Oct 2026

LiteLLM release hijacked: malicious 1.107.0 hit PyPI and Docker
LiteLLM’s 1.107.0 release carried a credential stealer and backdoor, was sent to PyPI and Docker around 4 a.m. on Oct. 21, and is now quarantined.
23 Oct 2026

North Korea’s Kimsuky is email‑pitching Ukraine’s experts
A South Korean firm says Kimsuky used credible invites and research asks to pry into Ukraine’s war intel, then shifted to payloads hosted on developer platforms.
15 Oct 2026

Eight eMudhra CA keys cracked. Email needs patches too.
Eight intermediate keys were recoverable. Browsers blocked fast. Email systems need updates just as eMudhra quits global SSL/TLS.
23 Oct 2026

ConnectWise pulls Cloud Backup after 173 M365 tenants hit
A compromised Cloud Backup credential let unknown actors hop into 173 Microsoft 365 tenants. ConnectWise pulled the plug on the service and disabled seven app identities.
19 Oct 2026