211 points ejohnso49 1 hour ago 109 comments

cubefox 1 hour ago | parent

Sounds like a lot went wrong, the 2024 issue not being patched and then multiple parties leaking stuff before the scheduled release date.

petecooper 1 hour ago | parent

>On Tuesday, October 20th, at around 15:00 UTC, the two CVE IDs began circulating on online forums and social media. They came with a wrong release time and a wrong CVSS score of 10.0 (the actual score is 9.2). No technical details leaked.

This was partly me. I take responsibility for posting it on HN. I am truly sorry for the disruption this has likely caused.

My contact had informed me there was no embargo, and told me her contact had told her the same. It transpired this morning that was a lie.

>On October 21st at 07:41 UTC, more than six hours before the coordinated release, Chainguard unilaterally broke the embargo and published built images containing the fix. Like other distributors, Chainguard had received the patch in advance so its users could update the moment the vulnerabilities were disclosed. Any attacker could now study the fix in binary form while every other PHP user was still waiting for the release. This disregarded weeks of work by many parties toward a coordinated disclosure.

On the plus side, at least I'm not Chainguard. Yikes.

dannyw 1 hour ago | parent

> As a result of the leak and pre-announcement around 20:00 UTC, Calif, one of the security firms that had reported the issues mistakenly published a video.

This is the most surprising part to me. It sounds like Calif saw the leaks, interpreted that as embargo being broken, and then raced to publish their [anime dancing] marketing video? I'd have expected much better.

yreg 1 hour ago | parent

This is not the dancing anime girl video, is it?

atymic 1 hour ago | parent

That's the one

bombcar 1 hour ago | parent

This is EXACTLY how marketing/pr firms actually coordinate no matter what they SAY.

xp84 48 minutes ago | parent

mistakenly?

This reads like some guy tripped and fell on top of his mouse and in so doing, accidentally turned on screen recording, performed the exploit a few times, got the anime girl asset and soundtrack, dropped all of them into Premiere, added the weird effects, rendered the video, and published the video to Twitter. "Ow. What did I fall on? Oh noooo, I broke the embargo!"

Heck of a mistake.

RamRodification 21 minutes ago | parent

Your comment is funny. But obviously, "mistakenly" refers to the mistake of believing the embargo being broken, and then, very intentionally and not mistakenly, publishing a stupid video.

bowersbros 1 hour ago | parent

Step 1: Ensure that docker images are available when the embargo is released. We're 2 hours in, and they still aren't available.

thinkindie 1 hour ago | parent

today I learned that building your image from scratch is fundamental in cases like this. Luckily I came prepared thanks to Claude Code suggestion.

eqmvii 1 hour ago | parent

Yep, all our efforts are now focused on working around that. It's pretty neat!

Droobfest 1 hour ago | parent

Never using docker hub ever again

lol768 1 hour ago | parent

The PHP Foundation should manage it, the Docker ""Official" Images" approach clearly just doesn't work properly for responding to vulnerability patches.

emilburzo 1 hour ago | parent

I can empathize with them, this is actually quite difficult when you're an open source project.

You have your source code public, so you can't commit/push because then you've leaked info.

Your build pipeline is also likely public, so you can't just build from another source code... source.

You can create a private repo, but now you also need to build a private build system.

You don't get the same generous build resources for private repos, so you either:

a) simplify the build to just the essentials

b) pay

Unless you have significant funding, you'll probably go for a).

Now you have to maintain two systems, also with some differences between them.

Plus you need a way to get the build artifacts from the private system to the public one, typically at a fixed point in time.

Any failure/delay (e.g. less powerful build on private repo, errors because you exercise it rarely) causes people to get upset that you didn't respect the announced time.

Maybe you're also using things like image attestation, another can of worms.

modeless 50 minutes ago | parent

Making a cloud CI/build/release system whose behavior can't be reproduced locally requires some kind of brain damage. I can't believe people tolerate this.

emilburzo 15 minutes ago | parent

That's... not what I said at all?

But let's go with that scenario, now you have all sorts of problems, from practical to security, like:

- accidentally/maliciously building the wrong thing? there's a patch, people agreed to it, but the wrong commit is built

- building for multiple architectures/versions?

- signing keys on someone's laptop?

- worse, image push/write keys on someone's laptop?

And so on.

cobolcomesback 37 minutes ago | parent

Those are all challenges that surely need to be overcome!

But they had _two months_ to figure out how to overcome them. For them to not have figured out a solution and have pre-built images ready to push as soon as the embargo lifted is ridiculous.

inglor_cz 29 minutes ago | parent

I'd say that for someone like PHP, in this era of AI-driven vulnerability/patch race, having a private CI/CD pipeline is a necessity.

PHP is written in C, I'd be surprised if similar problems didn't lurk in other places.

Maybe they will construct the private pipeline after this crisis. Millions of websites are probably now waiting for all the downstream Docker images to be built and pushed.

emilburzo 12 minutes ago | parent

The images everyone is waiting for are built by Docker though? So now if you're Docker you have to have a private CI/CD pipeline with all library projects?

It would be great, but it's also something to manage. Just keeping it working with all the changes that happen across all projects would be something.

fguerraz 1 hour ago | parent

I find it incredibly naive that they’d hope it would not leak after weeks/months of embargo.

Being given advance notice of an upcoming security fix is an immense privilege, organisations should turn around quickly when given such information, they shouldn’t be given more than a couple of days to update IMHO, it’s not like the rest of the world can wait.

Scaled 47 minutes ago | parent

Keep in mind that some of the organizations are presumably patching ancient versions of PHP like 5.6. I am sure this is a process which takes considerable time, especially as upstream PHP has washed their hands of such old versions and the downstreams are effectively on their own.

(It is often much cheaper for an enterprise to just get a long term support contract than to properly upgrade to a modern PHP stack.)

kyriakos 1 hour ago | parent

Aren't those run by docker? php foundation cannot be responsible

nicce 1 hour ago | parent

What is the penalty of breaking the embargo? Not shipping patches anymore beforehand?

dannyw 1 hour ago | parent

It might make other projects reconsider sharing advanced patches with Chainguard.

ernubufiei 1 hour ago | parent

> On October 21st at 07:41 UTC, more than six hours before the coordinated release, Chainguard unilaterally broke the embargo and published built images containing the fix.

This is incredibly damming of Chainguard. I struggle to see justification for this, even with the chaos approaching the coordinated release.

blantonl 1 hour ago | parent

This single-handedly assures that I will never, ever do business with Chainguard or any member of its C-suite executive team.

yreg 1 hour ago | parent

They (is it the CEO?) commented on it earlier here: https://news.ycombinator.com/item?id=50176735

In their place I would worry that this was the last time anyone shared an embargoed build with them.

dannyw 1 hour ago | parent

Let's hope so. Shall we create a new norm? A 365 day timeout, for companies like Chainguard that deliberately break embargoes.

Very irresponsible behaviour in my opinion; and if it's a decision made unilaterally by their CEO, probably a breach of their SOC 2 certification. What's next? "$X isn't patching this CVE fast enough, here's a binary blob of our fix, don't worry, we're making this free!"

cryptonym 57 minutes ago | parent

I think multiple companies didn't respect the embargo, in different ways.

That can be for marketing purposes or by mistake. Not sure how to deal with that.

dannyw 53 minutes ago | parent

A security vendor entrusted with advanced patches breaking embargo, is much worse than a security researcher breaking embargo.

martinjc 46 minutes ago | parent

Chainguard effectively held everyone hostage, and forced everyone hosting container images and wanting to be online, to trust their builds and then saying they did it for "free" to get free advertisement. Incredibly irresponsible behavior. They used this as a big fat advertisement board.

Dont trust us with information lol.

cobolcomesback 50 minutes ago | parent

Nah, Chainguard should be praised for this. It was a different company that leaked the POC early, and then PHP, Wiz, OpenAI, and Calif sat on their hands doing nothing while the vuln was being actively exploited in the wild. Chainguard did the right thing by getting the fix out as quick as possible to stop the bleeding (or gushing flow of blood, really) rather than sitting on it so they could make a coordinated marketing post, like the others did.

kstrauser 37 minutes ago | parent

That's a reasonably take. Embargos only work until the information's leaked, and once that's happened, however it happened, the bad guys have the exploit information and the clock starts ticking.

kijin 7 minutes ago | parent

But did they "get the fix out"?

They released some binaries, built for their own docker image based on their own Linux distro. Other people couldn't use Chainguard's "fix" to patch their own systems. The only people who seem to have benefited from the stunt are the hackers who used AI to reverse-engineer the binaries and write exploits.

That was a giant fuck-you to the rest of the PHP ecosystem, nothing more.

Grollicus 1 hour ago | parent

Not sure if this [1] comment is from them?

Because if there are already publicly available exploits seen, it makes no more sense to keep holding patches back just so that OpenAI etc. can get a nice press release

[1] https://news.ycombinator.com/item?id=50176735

gjsman-1000 1 hour ago | parent

So if I'm understanding correctly:

1. There was a leak of the pre-announcement

2. Calif sees leak, goes and releases dancing anime girl video before pulling it, goes viral

3. Chainguard sees dancing anime video, doesn't recognize Calif, and thinks the exploit is in the wild

[Edit 3a]: Or alternatively, Calif's leaked video causes the PoC to be found by others by providing enough of a lead

4. Chainguard releases updated binaries thinking it doesn't matter, causing the real exploit to then be found early

5. Which then causes PHP Foundation to basically have a meltdown

Personally I blame Calif for the unprofessional video which absolutely completely looks like some script kiddie and for being too detailed [edit 2: assuming Calif produced it and the anime wasn't a prank edit]. In this case it wasn't just unprofessional fun but may have literally messed up the responsible disclosure.

ebilgenius 1 hour ago | parent

Or maybe the anime girl video was an edit someone else made on top of an otherwise normal Calif video.

Still not great though.

gjsman-1000 45 minutes ago | parent

Unbelievably the anime girl video was the official version from Calif.

https://calif.io/php2shell/#php-5-4-0-rce

keketi 36 minutes ago | parent

The video got taken down by a copyright claim from Sony Music Entertainment. Unthinkable levels of unprofessionalism by Calif.

mirashii 1 hour ago | parent

> 3. Chainguard sees dancing anime video, doesn't recognize Calif, and thinks the exploit is in the wild

I'm not sure about this part. I saw https://jackalsyn.com/posts/php-up-2026.html going around a bit over 12 hours ago, before the chainguard images went out, and plenty of other chatter of exploitation happening in the wild.

danso 45 minutes ago | parent

That same user wrote a followup tweet last night asserting that their POC wasn't ready to do an exploit in the wild https://x.com/J4ck3LSyN/status/2112753673235501137

Hamuko 1 hour ago | parent

Not really sure if 3 is correct. Might have been Calif leaks the video -> it goes viral -> people make PoCs based on the video -> Chainguard releases the binary because there seem to be credible PoCs out there (that are not just the Shigure Ui video).

john_strinlai 1 hour ago | parent

if their comment in true (linked in sibling comments), then it's really not damning. typically an embargo is ended when someone leaks early or it's being exploited in the wild.

so, if they saw evidence of exploits in the wild, it is not unusual at all to release the fix.

ebilgenius 1 hour ago | parent

If they're gonna unilaterally release an exploit patch 6 hours before an agreed upon embargo for a CVSS 9.2 that affects like ~70% of the internet then they better have reams of evidence showing this was being exploited in a widespread manner and not just "we saw a dancing anime girl edit of a theoretical exploit on twitter, so we had to release it to the world"

b112 45 minutes ago | parent

And evidence they at least gave a heads up to everyone in on the embargo, eg "I have to release you all have 1 hour to get on board".

There is a MASSIVE difference between a small number of people exploiting in the wild, and a few hours after a release a bazillion script kiddies doing so. The move to release and break an embargo was childish, absurd, self-serving, and lacking in all common sense. Not to mention, breaking trust.

I agree with those in this thread who say, never going to do business with them. Ever.

richwater 37 minutes ago | parent

> Not to mention, breaking trust.

I highly doubt their paying customers feel the same way

b112 31 minutes ago | parent

A weird take.

As a customer, I'd immediately assume no one in the security community would trust them again, and seek someone else to give my money to. Why pay a) an untrustworthy company who b) now is not trusted by anyone and c) won't ever be able to early release again anyhow? And if anything, are left out of important conversations.

Way to burn bridges. You only get to be an asshat once.

yardstick 30 minutes ago | parent

Maybe, but if I was maintaining PHP or another critical software, I’d think twice about letting Chainguard have inside information.

I would let Chainguard deal with the patches post official release like all other unreliable parties.

arm32 1 hour ago | parent

Brain rot is making us incompetent, dangerously impatient, or a mixture of both.

skrrtww 1 hour ago | parent

I dunno, the post is awfully critical of Chainguard for leaking a fixed binary 6 hours early, but it was the research firm "partner" that "mistakenly" posted the dancing anime POC video over 24 hours early that created the mass panic (not to mention spawning millions of agents crawling the php codebase and trying to brute force a POC and probably using more energy than a lot of countries in the process).

john_strinlai 1 hour ago | parent

i keep seeing mentions of the video, but is it still available anywhere?

bcvvvy 59 minutes ago | parent

https://x.com/k_firsov/status/2112641845926989944

Song is Petite Meller - High Forever (Marlon Hoffstadt Remix). Which is annoyingly catchy

john_strinlai 57 minutes ago | parent

wow, okay. yes, that really does look like a "my first PoC" video made by an early teenager. hard to believe that this was produced by a company that wants to be taken seriously.

thanks.

bcvvvy 56 minutes ago | parent

Any idiot can create their own company. For example, I have one :)

unsnap_biceps 43 minutes ago | parent

they claim 60 full time employees

quietsegfault 28 minutes ago | parent

Any idiot can work for any idiot that starts a company!

b112 52 minutes ago | parent

I wish people would name this idiotic company, I can't see Twitter here and all people are talking about is a childish video they made. I don't ever want to do business with said company, ever.

They're apparently not trustworthy, and behave as children.

john_strinlai 48 minutes ago | parent

calif.io

Hamuko 48 minutes ago | parent

It's Calif. They're named in the post.

>As a result of the leak and pre-announcement around 20:00 UTC, Calif, one of the security firms that had reported the issues mistakenly published a video. It showed their proof of concept working against a number of targets and revealed a few additional, though limited, details about the vulnerabilities.

You can see the same demo video on their site: https://calif.io/php2shell/#php-5-4-0-rce

sippingabonedry 43 minutes ago | parent

If anything this is further justification for why these patches need to be kept under wraps.

This industry is full of immature children who cannot keep their mouths shut for 24 hours. They have no clue what massive coordination this requires.

yreg 12 minutes ago | parent

These 'immature children' have discovered the exploit, so good luck keeping it under wraps from them.

cpa 52 minutes ago | parent

arm32 45 minutes ago | parent

Definitely archiving this, lol.

tonyhart7 40 minutes ago | parent

lmao, these are funny af

cubefox 57 minutes ago | parent

> but it was the research firm "partner" that "mistakenly" posted the dancing anime POC video over 24 hours early that created the mass panic

They took it down but someone (Kirill Firsov: https://x.com/k_firsov/status/2112641845926989944) added the anime stuff and reposted it. Totally irresponsible.

Edit: okay he didn't add the anime, but he reposted it.

debugnik 38 minutes ago | parent

The company, Calif, has it with the music, effects and Ui Shigure animation on their own website and youtube channel: https://calif.io/php2shell/#php-5-4-0-rce

fatty_patty89 34 minutes ago | parent

what's up with the obsession of these people with anime children?

quietsegfault 29 minutes ago | parent

good god that video is absolutely horrible. why is stuff blurred then the same blurred stuff is suddenly all visible? nothing changed.

tetha 9 minutes ago | parent

I think I'm too old for this industry

I want to go back to talks by bored defcon guys or gals calmly stating how they obtained private keys of a globally trusted CA with just a bit of math. Which, mind you, ate the other part of the teams time.

Now I know how much I hustled today likely due to that atrocity of a video. I think I will take a vacation day and sit in a forest near a river on friday.

corford 52 minutes ago | parent

Agree. If I'm following along correctly, it seems Calif is really the one to blame not Chaingaurd.

yardstick 36 minutes ago | parent

Both are to blame.

Calif more than Chainguard, but still Chainguard too.

Calif was obviously twitching to claim credit for their findings, and what I find troubling is this eagerness was more important to them than giving users a chance to update their systems.

Even if they ended up waiting only a day post release I would still say it seems a bit too soon. Maybe a week after. Not everyone’s system have aggressive patching schedules and PHP is soo heavily used.

tflinton 1 hour ago | parent

I kinda get Chainguard's position here. They were part of the embargo, saw exploits hitting in the wild already and decided to release rather than hold things back.

Embargos make sense if no one is exploiting it yet, but if its out in the wild, the best path forward is releaseing as soon as possible.

dannyw 1 hour ago | parent

Did they actually see exploits in the wild? The PHP Foundation team disputes this, and say they didn't observe any working PoC capable of an exploit.

gjsman-1000 1 hour ago | parent

Chainguard most likely interpreted Calif's dancing anime girl video as a script kiddie who had found a POC.

dannyw 1 hour ago | parent

It sounds like there was no "co-ordination" behind any of this co-ordinated disclosure. You'd have expected there to be an IRC channel, a mailing list, a Slack chat, or something for something of this scale.

Was there even an incident co-ordinator here? Was any of the parties talking to each other?

arm32 42 minutes ago | parent

Can you blame them? Calif's unbelievably unprofessional video's leak definitely spikes the cortisol of any actual professional.

danso 48 minutes ago | parent

The person who wrote the widely-referred-to tweet last night (claiming to "have recreated & lab/field tested CVE-2026-109618 / CVE-2026-109619") followed up a couple hours later and said that their POC had not been proven to work "in the wild"

[0] https://x.com/J4ck3LSyN/status/2112703096443097263

[1] https://x.com/J4ck3LSyN/status/2112753673235501137

skrrtww 35 minutes ago | parent

Cloudflare's blog post announcing its updated WAF rules directly implies the existence of in-the-wild exploits: https://blog.cloudflare.com/php-vulnerabilities-waf-protecti...

"Cloudflare successfully deployed multiple mitigations for all its customers while the vulnerability was leaked before the official release date and we observed attack traffic targeting our customers."

If that's not an in-the-wild exploit, it literally couldn't have been further away than one or two more iterations.

snowwrestler 27 minutes ago | parent

Attack traffic doesn’t necessarily mean the attacks were, or would have, succeeded.

From Cloudflare’s perspective, there is no downside to saying what they observed, and deploying defenses.

We may never know if this was actually being successfully exploited prior to patch availability.

rskeens 38 minutes ago | parent

Many people actively following would have 403'ed multiparts so people seeing those blocked might have assumed it started being exploited early instead of probes / background noise.

ChrisArchitect 1 hour ago | parent

Related:

PHP2Shell: AI uncovers critical RCE in PHP

https://news.ycombinator.com/item?id=50180836

Patch the Planet: global response coordination as agents uncover critical vulnerabilities

https://news.ycombinator.com/item?id=50181175

Upcoming critical PHP security release (CVE-2026-109618 / -109619)

https://news.ycombinator.com/item?id=50172041

ck2 1 hour ago | parent

serious question

for legacy systems, how difficult would it be for an attacker assisted by "AI" to stage the conditions

on a scale of 1 (easiest) to 10 (hardest)

TZubiri 42 minutes ago | parent

What do you mean by stage these conditions?

riddley 5 minutes ago | parent

0. Seriously.

charcircuit 1 hour ago | parent

>Chainguard unilaterally broke the embargo and published built images containing the fix.

>This disregarded weeks of work by many parties toward a coordinated disclosure.

Good. Coordinated disclosure meant that people couldn't protect themselves. That's not a good thing. It meant sites were forced to shut down instead of simply updating.

S0y 1 hour ago | parent

You need to pay to get access to chainguard images.

lrae 1 hour ago | parent

They made them available for everyone and free in this case.

https://news.ycombinator.com/item?id=50176735

blantonl 1 hour ago | parent

That is incredibly damaging to the trust that coordinated vulnerability disclosure depends upon. The obvious consequence is that Chainguard should never again receive embargoed fixes in advance. You don’t get invited back into the room after demonstrating that you can’t be trusted with the information.

They didn’t get to unilaterally decide that the embargo was inconvenient and publish early.

john_strinlai 1 hour ago | parent

not the ones related to this

tflinton 1 hour ago | parent

No, you don't, you just don't get older patched versions unless you pay.

lol768 1 hour ago | parent

> The PHP security team closely monitored and inspected appearing PoCs after the leak but did not identify any functional exploits at the time of release/public disclosure

Okay, but how close did they get? Were they close enough that a determined actor could've (perhaps using an LLM) managed to get to a functioning exploit?

Grollicus 1 hour ago | parent

I know of a php exploited about 4 hours before their release time 1400 UTC, using the session bug in an exploit that was passed around. I'm really not very much in the loop about cyber security things.

bombcar 1 hour ago | parent

> The PHP security team, operating on consensus, struggled to choose between these and feared the repercussions of shipping the wrong choice.

This is the real story. You ship one of them (the breaking change) with —fuck-my-shit-up or something as a compile time option to switch to the other fix.

fg137 1 hour ago | parent

> Calif, one of the security firms that had reported the issues mistakenly published a video.

> Chainguard unilaterally broke the embargo and published built images ...

Won't be the last time this happens. If there is no consequence of breaking the rules, people will keep doing that.

cubefox 1 hour ago | parent

The guy who posted the CVE IDs early: https://news.ycombinator.com/item?id=50183326 (dead comment)

redox99 37 minutes ago | parent

As long as PHP is written in C, it will be insecure.

It sounds cliche but yes, they should rewrite PHP in rust or other memory safe language.

cute_boi 35 minutes ago | parent

And, i don't understand why we are still using PHP. Agents can use Rust or go directly and we get benefit of performance...

muspimerol 26 minutes ago | parent

Because like 30% of the websites in the world are on WordPress, and countless others in custom PHP? Not exactly a trivial task.

vaylian 26 minutes ago | parent

and the increased costs of maintenance of a code base that humans will be reluctant to read.

sevenzero 20 minutes ago | parent

Because its way easier to verify LLM generated code for Laravel over some Rust project. Or do you just vibe it and dont look at code anymore?

TheJoeMan 7 minutes ago | parent

As long as programmers trust 3rd-party-provided content-length input, it will be insecure. At this point, I'm not sure why we even use content-length anymore since you're going to need to size your buffers based on the actual content.

adithyassekhar 29 minutes ago | parent

It's interesting that even 4chan was taken down for over 24hours now. Responsible people there.

miohtama 10 minutes ago | parent

The old joke:

The guide to PHP security:

Use something else.

The end.