PHP vs Chainguard: A Supply Chain Security Crisis
When Chainguard published PHP security fixes early, it exposed a fault line in open-source vulnerability disclosure. The fight over CVE-2026-109618 reveals how AI-discovered bugs and commercial incentives are outpacing the coordinated model.
The Incident That Exposes a Broken Model
PHP maintainers issued an unusual statement on Wednesday — one that read more like an indictment than a security advisory. Two critical vulnerabilities in the scripting language, discovered by researchers using AI models at Calif, OpenAI, and Wiz, threatened roughly 70 percent of websites worldwide. But the real story wasn’t the CVEs themselves. It was the blame directed at Chainguard, the California-based supply chain security company that had published patched PHP images more than six hours before the coordinated disclosure window.
This is not a simple case of a vendor breaking an embargo. The PHP2shell vulnerabilities — tracked as CVE-2026-109618 and CVE-2026-109619 — represent a category of memory corruption flaw that has existed across every PHP version since 5.4, spanning roughly a decade of deployments. An unauthenticated attacker exploiting either bug could execute arbitrary code on a server. One researcher demonstrated remote code execution against a live Apache mod_php application; another showed that the memory_limit boundary could be weaponized before any application code even ran.
What happened in the hours leading up to the disclosure is where the model frayed.
The Timeline That Broke Trust
Rumors about the vulnerabilities began circulating on Tuesday around 15:00 UTC, when two CVE IDs appeared on forums and social media alongside incorrect severity ratings. No technical details were leaked — but the chatter was enough for PHP maintainers to move their announcement forward from Thursday to Wednesday. At that point, distributors were still packaging the fix.
Then Calif published a video showing a proof-of-concept exploit. Mitigation advice that had been shared with critical infrastructure providers around October 20th also appears to have leaked. By October 21st at 07:41 UTC, Chainguard had unilaterally published built images containing the patch.
The PHP Foundation blog was direct: “This disregarded weeks of work by many parties toward a coordinated disclosure.” Any attacker could now study the fix in binary form while millions of PHP users — especially those running legacy systems without easy update paths — remained exposed.
The Other Side of the Embargo
Dan Lorenc, Chainguard’s CEO, did not dispute the timeline. He simply rejected the framing.
“These things are messy,” Lorenc told The Register. “We made the call.” His account traces back to the previous Friday, when a researcher at Calif — one of the three who found the bugs using AI — mentioned to him that “something was coming in PHP.” Lorenc and his team ran their AI harness with a basic prompt and independently found the same memory corruption vulnerabilities. They spent the weekend cross-referencing findings with PHP maintainers and testing patches that, Lorenc noted, were far from trivial. The bugs required months of work to fix properly.
By Tuesday night, Lorenc had learned that people were being hit with active exploitation in the wild. He notified the PHP coordinated disclosure channel and shipped the fixes. On Wednesday morning, he woke up to the backlash.
“This process and policy is based on trying to coordinate as much as possible until shit hits the fan and people start weaponizing things,” Lorenc said. “It sucks, because we really are all on one team, and there are bad guys over there doing stuff.”
His company reported that their honeypots captured IP addresses from China and Russia probing for the vulnerabilities on Wednesday. Lorenc also observed something darker: “Just being told there’s a vulnerability in a piece of software is enough to find it.” He had discovered the same flaws himself without any detailed knowledge of the underlying mechanics.
What This Actually Means
The PHP-Chainguard clash is not really about a single disputed disclosure window. It is about a structural shift in how security vulnerabilities are discovered and who controls the narrative around them.
Three changes are converging here. First, AI-powered vulnerability research is compressing timelines dramatically. Where a critical memory corruption bug might have taken a researcher months to identify through manual code auditing, Calif’s team found it in days using frontier models. That speed creates pressure on the traditional coordinated disclosure model, which assumes a slower, more controlled pace between discovery and public notification.
Second, the commercial supply chain security industry has developed its own decision framework for when to publish fixes early. Lorenc’s stated policy — ship when there is evidence of active exploitation — is rational from a customer protection standpoint. But it exists in tension with the collective interest of coordinated disclosure, which aims to give the broadest possible set of system operators a fair chance to patch before attackers gain detailed knowledge of the flaw.
Third, the PHP ecosystem itself is now more dependent on commercial security vendors than ever. Chainguard’s entire business model is built on hardening open-source code and distributing patched images. When they choose to act unilaterally, they are not just making a security decision — they are exercising de facto governance over a critical piece of internet infrastructure.
Who Wins, Who Loses
The immediate winners are whoever had access to Chainguard’s pre-disclosure artifacts. Attackers who studied the patched binaries gained insight into the vulnerability’s mechanics without waiting for the official advisory. Lorenc’s own observation — that simply knowing a vulnerability exists is enough to find and weaponize it — suggests the damage may already be done.
The losers are the most vulnerable PHP deployments. Legacy systems running PHP versions from the past decade that cannot easily update, particularly in environments where the patching cadence is slow or nonexistent. These are often the same systems that power critical but under-resourced services.
PHP maintainers lose something less tangible but arguably more important: credibility in their ability to manage the disclosure process. If coordinated vulnerability disclosure cannot withstand a single commercial vendor’s interpretation of “active exploitation,” the model needs reinforcement — or replacement.
The Structural Problem
What makes this incident worth watching is that it is likely repeatable. The conditions that produced it — AI-accelerated discovery, commercial incentives to publish early, and the sheer criticality of PHP to global web infrastructure — are not going away.
The PHP Foundation acknowledged that moving the disclosure forward by a day was “the best compromise between acting quickly, giving people time to prepare, and making sure everyone had a simple update path.” But the compromise assumed all actors would play by the same rules. Chainguard did not.
Lorenc said he would not change his decision. “I think this is kind of the new normal,” he said. “People are able to build an exploit in hours without even knowing what the vulnerability is.”
That may be the most unsettling takeaway. The PHP2shell vulnerabilities were found through AI, confirmed independently through AI, and then weaponized possibly through AI — all within a week. The traditional assumptions about how long it takes an attacker to go from awareness to exploitation are being rewritten in real time.
The question now is whether the coordinated disclosure model can adapt fast enough, or whether the next crisis will look like this one — just faster, and with fewer people willing to wait.