Black Wednesday and PHP2Shell: What Website Owners Should Do Now

October 21 stacked five emergencies into one day
Some are calling October 21 Black Wednesday, and the Guardian reports the wider stretch is being called "Black October." The label fits. TechCrunch's same-day rundown noted that government websites around the world went offline while teams patched PHP, and that the PHP fix was only one of several on the same afternoon.
| Date | What happened |
|---|---|
| Oct 17 | First PHP2Shell attempt seen |
| Oct 17 to 18 | UpdraftPlus vendor breached |
| Oct 19 | OpenCode breach reported |
| Oct 20 | eMudhra keys blocked |
| Oct 21 | PHP, Node.js, GitLab patches |
| Oct 21 | LiteLLM malicious release |
| Oct 21 | Railway discloses breach |
None of these incidents caused the others. What they share is timing, and a common thread that security leaders kept returning to all week: AI is making it faster to find serious bugs, and faster to weaponize them once they are public.
PHP2Shell is a server problem, not a plugin problem
The PHP project's advisory describes two vulnerabilities, CVE-2026-109618 and CVE-2026-109619, that "can allow unauthenticated remote code execution." According to The PHP Foundation, both stem from how PHP cleans up after a fatal error, such as hitting its memory limit at the wrong moment. Leftover internal state can then be reused by a later request, which is the opening an attacker needs. Both carry a CVSS score of 9.2.
The NSA's advisory made the point most site owners need to hear:
"These vulnerabilities are flaws in PHP itself, not in the hosted application or its configuration."
That is why WordPress updates do not help. Researchers at Wiz demonstrated pre-authentication code execution against the latest official WordPress, Drupal and Joomla container images, and said exploitation does not depend on the application at all. A basic PHP page on an affected version is exposed.
The reach is wide. W3Techs reports PHP is used by 69.2% of websites whose server-side language it can identify. Wiz rounded that to "70% of the Internet," which is the figure that went viral, but the W3Techs wording is the precise one. Exposure is not hypothetical either: The Record reported that Censys counted more than 41 million internet-facing PHP services on affected versions as of October 22, against about 1 million on a fixed release.
- Old PHP branches are on their own. The PHP project no longer supports PHP 8.1 and older. It released minimal source backports for 7.4, 8.0 and 8.1, but most sites on those versions need a vendor package or an upgrade.
- Some setups carry more risk. Help Net Security reported that every PHP installation serving web requests is affected, with Apache mod_php in the most danger.
- PHP hides in hardware. TechCrunch noted that PHP also runs inside routers, storage devices, firewalls and VPNs, which IT teams patch far more slowly than websites.
AI found the bugs, and attackers moved within hours
The Guardian noted that this is the first time researchers used AI to find a flaw this fundamental. OpenAI said security firm Calif found one of the bugs using GPT-5.6 Sol through its Patch the Planet initiative, and that Wiz independently found both. Wiz credited its own AI researcher plus Gemini 4 Argon and GPT-5.6 Sol, and said a single researcher finished in a week what would once have taken a world-class team months. Wiz, Calif and OpenAI all sell security products or services, so each has a reason to emphasize how capable their tools were.
The defenders did not get much of a head start. The PHP Foundation's timeline shows the CVE numbers leaked on October 20, Calif mistakenly published a video of its proof of concept that evening, and one distributor shipped patched images more than six hours before the embargo lifted. Amazon Threat Intelligence recorded an exploitation attempt against its honeypots on October 17, four days before disclosure.
"Defenders should not assume the public disclosure date is the earliest date of exploitation."
Cloudflare CEO Matthew Prince described the curve on X, as quoted by the Guardian: thousands of people trying to exploit the flaws in the 10 hours before the announcement, "tens of thousands in the 45 minutes post announcement, hundreds of thousands within 2 hours, and millions now." Anthropic's deputy CISO, Jason Clinton, warned on X of a coming "vulnerability tsunami."
Why it matters for marketing teams. Your site's patch window used to be measured in weeks. Amazon's own advice is now to measure response times for critical internet-facing flaws in hours, because a 7 or 30 day patch policy no longer matches how fast exploits appear.
The panic outran the evidence, for now
A lot of the coverage, and much of what circulated on social video, suggested that any WordPress site was probably compromised already. The reporting does not support that. The Record reported on October 23 that experts had confirmed no successful wide-scale exploitation. Google's John Hultquist said his team had not validated in-the-wild exploitation, though "exploitation may have already begun in a limited fashion."
The reason is practical. VulnCheck's Spencer McIntyre told The Record that many public proof-of-concept exploits were "garbage and nonfunctional," and incident responders said a standard memory protection, address space layout randomization, was stalling attackers. Sophos reported, then retracted, a claim of successful exploitation.
None of that is a reason to wait. Trail of Bits reported working exploits by October 23, according to TechCrunch, and Cobalt's CISO told The Record defenders may have "days, not weeks" once a reliable technique reaches botnet toolkits. Scanners hunting for vulnerable servers were already running.
Your AI keys became the target
The other story of the week had nothing to do with PHP. Attackers went after the API keys companies use to pay for OpenAI, Anthropic and Google models, because a stolen key converts straight into usable compute.
- OpenCode said a "large-scale distillation attack" hit 1.4% of its Console users, with some reporting charges above $1,000. Anthropic and Google blocked exposed keys, and OpenAI issued refunds.
- Railway estimated that up to 1.85% of workspaces, about 100,000, had environment variables potentially exposed, and said the attacker sought AI provider keys "to perform distillation attacks."
- LiteLLM's malicious 1.107.0 release was live on PyPI for under two hours on October 21 and stole credentials from any host that installed it.
The motive lines up with a September warning from the NSA, FBI and CISA, reported by ExecutiveGov, that China-based AI companies run "industrial-scale knowledge distillation campaigns" against US models, helped by a gray market of API proxies the agencies call "transfer stations." OpenCode and Railway have not published proof of who was behind their breaches, so treat the link as context, not attribution.
OpenCode also hit a defender's problem: commercial models refused to help analyze the malicious code once it tripped safety filters. Both labs now run vetted programs for this, OpenAI's Daybreak and Anthropic's Cyber Verification Program, and OpenCode got Daybreak Blue access mid-incident. If your company does its own security work, apply before you need it.
Going offline does not have to cost you rankings
Both agencies told organizations to take systems offline if they could not patch immediately. The FBI said to "take the system offline until it can be fully mitigated," and the NSA used the same language. For a marketing site, how you go offline decides whether search engines notice.
Google's John Mueller gave the answer on Bluesky the day of the patch, as Search Engine Roundtable reported:
"use HTTP 503 instead of letting responses time out / 404 / 500."
A 503 tells crawlers the outage is temporary and to come back later. A 404 or a string of timeouts invites them to start dropping pages. Mueller added that the 503 can be served from outside PHP, through DNS or a CDN, which matters when PHP itself is the thing you are switching off. Google's guide to pausing a website covers longer closures, and our weekly roundup for October 19 to 23 has more on how Google handled the week.
The bigger search risk is a successful hack. Injected spam pages and malware trigger Search Console's Security issues report, can put a warning label on your listings, and only clear after you fix the whole site and request a review that can take days or weeks. A few hours of 503 is cheap by comparison. Check the report in Search Console this week, even if your host says you are patched.
The rest of the week's patch list
PHP took the headlines, but the other October 21 fixes reach plenty of marketing stacks too.
| System | What to install |
|---|---|
| Node.js | 22.23.4, 24.22.1 or 26.12.1 |
| GitLab self-managed | 19.5.1 or backport |
| UpdraftPlus | 1.26.13 or 2.26.13 |
| LiteLLM | Pin 1.106.2, rebuild |
The Node.js releases fix ten CVEs, including a high-severity Brotli decoder flaw that can lead to code execution in any app that decompresses untrusted data. That one was reported by OpenAI's Codex Security. GitLab's flaw scores the maximum CVSS 10.0 and reaches self-managed versions back to 7.0, with no workaround. Google blocked eight compromised eMudhra certificate authorities in Chrome and is removing their root, so any site with a certificate from that chain needs a new one.
WordPress owners have a second item. Search Engine Journal reported that attackers stole UpdraftCentral connection keys from the vendor behind UpdraftPlus, a backup plugin on over 3 million sites, and used them to install backdoor admin accounts. The update revokes old keys but does not remove plugins or accounts the attackers already added.
Where to start
- Get your PHP version in writing. Ask your host or developer which PHP version every site runs today and the date it was patched, including staging sites and old microsites nobody owns.
- Upgrade anything below PHP 8.2. Unsupported branches will not get fixes from the PHP project, so treat 8.1 and older as an upgrade project, not a patch.
- Serve a 503 if you must go dark. Put the maintenance response at the CDN or DNS level, keep it to hours, and confirm it returns status 503 before you switch PHP off.
- Rotate AI keys stored in third-party tools. Revoke and reissue any OpenAI, Anthropic or Google keys held in coding tools, hosting platforms or proxies, and set a monthly spend cap on each.
- Audit WordPress admins and plugins. Look for administrator accounts and plugins you do not recognize, especially if you use UpdraftPlus, and restore from a pre-October 17 backup if you find any.
- Watch Search Console and your logs for two weeks. Check the Security issues report, crawl stats and server logs for repeated 500 errors or odd upload requests, which Wiz and Amazon both flagged as signs of exploitation attempts.
Black Wednesday will not be the last week like this. The same AI that found PHP2Shell is pointed at every other old library on the web, which means the patch cadence for a marketing website now looks a lot more like the one for a bank. The sites that come through intact will be the ones where someone owns that job before the next advisory lands.
Frequently Asked Questions
Common questions about GEO, SEO, and AI-driven search visibility.
PHP2Shell is the name for two critical vulnerabilities in the PHP language itself, CVE-2026-109618 and CVE-2026-109619, patched on October 21, 2026. The PHP project said they can allow unauthenticated remote code execution, and the NSA said they could let attackers take control of web servers without prior access. Both were rated CVSS 9.2.
If your server runs an unpatched version of PHP, yes, because the flaw is in PHP, not in WordPress or its plugins. Wiz demonstrated pre-authentication code execution against the latest WordPress, Drupal and Joomla container images. Updating WordPress does not fix it, so ask your host to confirm your PHP version.
The fixed releases are PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35, published by the PHP project on October 21, 2026. PHP 8.1 and older no longer receive updates from the project, though minimal source backports were released for 7.4, 8.0 and 8.1. Sites on older branches should upgrade or get backported packages from their vendor.
Attempts began early: Amazon Threat Intelligence recorded one on October 17, 2026, four days before disclosure. As of October 23, The Record reported that experts had confirmed no successful wide-scale exploitation, and many public proof-of-concept exploits failed against realistic setups. Trail of Bits reported working exploits the same day, so the risk is rising.
Only if you cannot patch right away. The NSA and FBI both advised taking systems offline until they can be mitigated if an immediate update is not possible. If you do, Google's John Mueller recommended serving an HTTP 503 status rather than letting requests time out or return 404 or 500 errors, so search engines treat the outage as temporary.
Attackers broke into platforms that store developers' keys. OpenCode said 1.4% of its Console users were hit, Railway estimated up to 1.85% of workspaces had environment variables exposed, and LiteLLM shipped a malicious release on October 21 that stole credentials. Both OpenCode and Railway said the attackers wanted AI provider keys for distillation.
Sources
- PHP: Security advisory, critical remote code execution vulnerabilities (opens in a new tab)
- National Security Agency: NSA Advisory, Critical Patches Recommended for PHP Vulnerabilities (opens in a new tab)
- Newsweek: FBI Issues Advice As Security Issue Hits Global Websites (opens in a new tab)
- TechCrunch: The internet is having a very bad cybersecurity day (opens in a new tab)
- TechCrunch: PHP-ocalypse, how two critical web bugs almost broke the internet (opens in a new tab)
- The Guardian: Black October, cybersecurity experts sound the alarm over new era of AI-enabled hacking (opens in a new tab)
- W3Techs: Usage statistics of PHP for websites (opens in a new tab)
- Wiz: PHP2Shell, AI uncovers critical RCE vulnerabilities affecting 70% of the Internet (opens in a new tab)
- The PHP Foundation: Today's PHP security release and how we're strengthening PHP security (opens in a new tab)
- OpenAI: Coordinated disclosure of critical vulnerabilities (opens in a new tab)
- AWS Security Blog: Amazon Threat Intelligence identifies PHP2Shell exploitation prior to public disclosure (opens in a new tab)
- The Record: Reports of PHP2Shell exploitation attempts grow, but experts say no successful attacks are confirmed (opens in a new tab)
- Help Net Security: PHP2Shell, critical PHP vulnerabilities patched, update now (opens in a new tab)
- TechCrunch: Hackers hit AI coding tool OpenCode, running up charges on users' AI accounts (opens in a new tab)
- Railway: Preliminary report, Oct 21st security incident (opens in a new tab)
- LiteLLM: Oct 21, 2026 LiteLLM release v1.107.0 compromised (opens in a new tab)
- ExecutiveGov: NSA, FBI, CISA warn of China AI distillation campaigns (opens in a new tab)
- OpenAI Help Center: OpenAI Daybreak, Trusted Access for Cyber overview (opens in a new tab)
- Help Net Security: Anthropic loosens Claude's cyber restrictions for verified defenders (opens in a new tab)
- Search Engine Roundtable: Google on taking sites down when fixing the emergency PHP exploit (opens in a new tab)
- Google Search Central: Temporarily pause or disable a website (opens in a new tab)
- Search Console Help: Security issues report (opens in a new tab)
- Node.js: Wednesday, October 21, 2026 security releases (opens in a new tab)
- The Hacker News: Critical GitLab flaw (CVSS 10.0) could allow unauthenticated RCE across 12 years of releases (opens in a new tab)
- Google: Protecting Chrome and Android users from compromised eMudhra intermediate CA certificates (opens in a new tab)
- Search Engine Journal: UpdraftPlus WordPress plugin security breach enables backdoor attacks (opens in a new tab)