PHP2Shell explained: the flaw that shook 70% of the web, and the DeepSeek swarm rumor
October 2026 is already being called "Black October". Per GPTunneL's roundup, at least eleven major breaches, leaks and critical vulnerabilities landed between October 12 and 22, and AI was involved in seven of them. At the center sat PHP2Shell, two remote code execution flaws in the PHP core.
Right after the patch shipped, a rumor went viral on X: "someone is running a DeepSeek swarm to remotely hack unpatched PHP servers and patch them for us." The image of white-hat botnets racing black-hat swarms earned 71k views, but there is still no evidence for it. This post separates the incident from the rumor, with sources.
What actually broke
Wiz Research, Calif and OpenAI jointly disclosed two clusters of memory-safety bugs in the PHP core.
- CVE-2026-109618: a use-after-free in the upload-progress (unserialize) path. Unauthenticated attackers can read PHP worker process memory, which holds other requests' passwords, tokens and API keys.
- CVE-2026-109619: a use-after-free in fatal-error backtraces plus an OPcache type confusion, enough to corrupt shared state and reach code execution.
Both score CVSS v4.0 9.2 (critical). PHP shipped emergency fixes on October 21 at 14:00 UTC: PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35.
The root pattern is singular. When a request dies with a fatal error such as an out-of-memory condition, PHP can leave internal state half-cleaned. The next request on the same worker reuses that corrupted state as live data, which turns into memory disclosure or code execution.
Calif mapped two OOM-fatal producers and three interruptible points in the interpreter that make this exploitable.
The bug lives in the runtime, so the application is irrelevant. Calif confirmed pre-auth RCE against WordPress, Drupal, Joomla, MediaWiki (Wikipedia), Roundcube, Magento, phpMyAdmin, Nextcloud, Laravel, Symfony and WHMCS.
A "Hello World" app is just as exposed if its PHP version is affected. So is every release of the last decade: all versions since PHP 5.4 (2012) fall to at least one of the two CVEs. With PHP powering roughly 70% of all websites, that is most of the web.
Why a 20-year-old bug broke now
Calif's timeline tells the story well.
- 2004: Stefan Esser finds the first PHP memory-limit remote vulnerability, and never publishes his exploit.
- 2020: bug #78876 reports that long variables cause OOM conditions with missing cleanup. It goes nowhere.
- 2024: the OSTIF/Quarkslab audit rediscovers the same OOM issue, but exploitation is unproven, so it is not fixed.
- 2026-07-30: OpenAI's Patch the Planet program brings Calif in, working with the PHP Foundation.
- 2026-08-01: days into the audit, the first OOM-fatal path surfaces. More variants follow, working against both mod_php and PHP-FPM.
- 2026-08-11: first report to PHP. PoC shared Aug 14, reproduced by PHP on Aug 15.
- 2026-10-21: emergency patch, a day early.
The flaw survived for decades because turning it into a reliable exploit demanded chaining work at the edge of what human researchers could practically achieve. AI lowered that wall.
How the disclosure went sideways
The patch was planned for October 22. On October 20 three things happened at once: the CVE numbers leaked, Calif accidentally published a PoC demo video, and a container vendor shipped patched images ahead of schedule. PHP pulled the release forward, exactly as it had promised it would if details leaked.
Exploitation had already started.
- Amazon Threat Intelligence saw the first attack attempts on October 17, four days before disclosure, in its MadPot honeypots.
- Cloudflare CEO Matthew Prince shared the curve: thousands of attempts in the 10 hours before the announcement, tens of thousands 45 minutes after, hundreds of thousands within 2 hours, millions by the time he posted.
- The Record reported hundreds of sites, including Nintendo's, went offline as a precaution.
Partial mitigations exist but are uncomfortable. On PHP-FPM set session.upload_progress.enabled=0 and memory_limit=-1; on mod_php set memory_limit=-1.
Removing the memory cap trades one risk for another, which is why both Calif and the PHP team call patching the only real fix. The UK NCSC recommends isolating unpatchable systems from the internet.
Detection hints from Wiz: unusual multipart requests followed by memory-limit errors or repeated 500s, abnormally large or malformed PHPSESSID cookies, and unexplained worker churn. This happens below the application layer, so app logs will show almost nothing.
What AI changed: the end of the complexity shield
The real story is economics, not PHP. In Wiz's words, the flaws sat in the codebase for over a decade because exploitation required chaining multiple bugs and adapting to each target's memory layout through repeated testing, at the edge of what human researchers could practically achieve.
Wiz used Wiz Atlas, Gemini 4 Argon and GPT-5.6 Sol. Notably, Gemini 4 Argon contributed from vulnerability discovery through exploit development, detection rules and patch validation.
Calif's retrospective is equally interesting: no special harness, no unreleased models, just generally available ones. A researcher who knew the target's 20-year vulnerability history steered the LLM explicitly.
The reason: default variant analysis gravitates toward recent bugs, not obscure old primitives. "Know your target" still matters in the LLM era.
On the offense side, Reuters documented the numbers: one Chinese-speaking hacker, from September 25, set AI agents on more than 1,200 websites across the US, Canada, Australia and Japan and breached over a hundred.
Each success took about 23 hours, and the whole campaign burned roughly $5,000 of model tokens, about $50 per breach. The agents ran on a mix of DeepSeek and Claude Code, on the open-source Cairn platform.
They were caught because the operator left the Cairn control panels exposed to the internet. Victims identified by Reuters include John Deere, SharkNinja and Cummins.
In short: when the cost of adapting a complex exploit drops from specialist-weeks to a few dollars of model time, "exploitation is unproven, so we are fine" stops being a valid risk assessment. The bug that survived the 2024 audit on exactly that logic was under active attack four days before its 2026 disclosure.
The 'DeepSeek swarm' rumor
Right after the patch, on October 22, this thread spread on X.
leo (@synthwavedd): "Using swarms of agents to exploit the PHP2Shell vulnerability to remotely patch vulnerable devices before a malicious actor can exploit the same vulnerability using their own swarms 😭 crazy times"
Hensen Juang (@basedjensen): "Lol I am pretty sure someone is running a deepseek swarm to remotely patch unpatched php boxes. Well good on them."
The white-hat-botnet-racing-black-hats image was strong enough that leo's post hit 71k views and about 3.9k likes, and a Chinese-language account amplified it with an AI-generated image of a global patching cluster.
But no actual remote patching has ever been shown. As AI Matters summarizes, Help Net Security, The Record and WatchTower mention none, and WatchTower says the attackers have not even been identified. The claim is a speculation that became a meme.
What DeepSeek-powered swarms verifiably did was attack, not defend. The Reuters campaign ran on DeepSeek and Claude Code. CrowdStrike separately reported four groups breaching companies with Claude Code-based harnesses between May and August.
Those four include a Spanish-speaking operator who hit 15+ healthcare organizations in Argentina, a Chinese-speaking group targeting government bodies in two countries, and an Indonesian group that downloaded 819 ready-made Claude Code skills from GitHub.
AI swarms hacking servers is real; so far the direction is offense, not defense.
"Can't the good guys just patch it for us?"
No, and they should not. Unauthorized intrusion is a crime regardless of intent. As summarized by AI Matters, Korea's Network Act (Article 48) prohibits intrusion without legitimate access rights, and the US CFAA criminalizes unauthorized access. "The server was vulnerable and I only fixed it" describes the crime, not a defense.
There is precedent for why the line stays hard. In 2021 the FBI removed webshells from hundreds of Exchange servers, but only with a court order, and even then only the webshells, not the patching. If institutions need warrants for cleanup, a self-appointed swarm does not get a pass.
Practically, too, remotely triggering PHP2Shell on someone's server "for their own good" means running unverified code in someone else's process memory. Success is still an intrusion, failure is a denial of service.
And the mere belief that helpful swarms are out there encourages people to postpone patching. That is the rumor's most dangerous side effect.
What to do now
- If you run PHP, upgrade to 8.5.12, 8.4.27, 8.3.36 or 8.2.35. Updating your app or plugins is not enough; update the PHP runtime itself.
- 8.1 and older are EOL with no official release. The PHP team published minimal source patches for 7.4/8.0/8.1 on GitHub, but plan the version upgrade anyway.
- If you cannot patch immediately, isolate the system or apply Cloudflare's WAF rules (free plan included).
- On shared hosting, check which PHP version your provider runs, since the bug was never in your code.
Closing: complexity is no longer a shield
Heartbleed showed shared libraries, Log4Shell showed deep dependencies, PHP2Shell shows the new exploit economics: a 20-year-old bug weaponized with a few dollars of model time, with the same acceleration working for defenders through detection and patch validation.
The "DeepSeek swarm saving the internet" meme makes a great story, but it is still a story. The boring answer keeps winning: what protects your server is not a racing swarm, it is the update you press today.
References
- Wiz - PHP2Shell: AI uncovers critical RCE
- Calif Research - PHP2Shell timeline and write-up
- php.net - October 2026 Security Release
- Cloudflare - WAF protection
- AWS - exploitation detected before disclosure (MadPot)
- Reuters - the hacker behind 100+ AI-agent breaches
- AI Matters - fact check of the DeepSeek remote-patching claim (KR)
- GPTunneL - Black October timeline
- X thread - the "deepseek swarm" quote

