Today's PHP security release, and how we're strengthening security (thephp.foundation)

519 points by ejohnso49 6 hours ago

dofm 2 hours ago

You may never hear me say this again because I am a gruff cynic who is not sure that hanging out here is good for his psyche, but thank goodness for HN.

While I have been chasing around today, trying to resolve this on different servers, it turns out a three line nginx mitigation (blocking multipart uploads) I wrote in the wee small hours GMT has been quietly protecting a vulnerable machine I could not shut down (from attacks powered by every single mainstream agentic AI tool — Anthropic, OpenAI, Qwen cloud, Baidu, seemingly also AWS, Meta)

Including an hour before the PHP patch actually shipped.

So without the HN discussion I wouldn't have found enough people pointing at possible mitigations and I would have lost a server to this, and I thank everyone who pointed out that second mitigation in particular.

ljm 3 minutes ago

HN was my source of truth for mitigating this

UomoNeroNero 2 hours ago

YES!!!!

I absolutely loved being here today.

So many brilliant minds screaming and hating together, trying to survive the tide.

There aren’t many places like this left on the commercial internet, especially in this brave new AI-driven world.

I felt a great disturbance in the Force. But in a good way.

Together, we are strong. May the Force be with us all!

tasuki an hour ago

> from attacks powered by every single mainstream agentic AI

Is it so bad? Have you measured the number of attacks?

> So without the HN discussion I wouldn't have found enough people pointing at possible mitigations and I would have lost a server to this

I run a tiny server. I like this server a lot. I only patched an hour after the Debian package was ready and didn't think about it again. Do you mean to imply there's a real chance my little server has been compromised?

[Edit:] My server is quite public too. It hosts four SLDs and many subdomains and receives both human and bot traffic. Only one or two subdomains use PHP, but a reasonable attacker surely tries all of them.

dofm 37 minutes ago

> Is it so bad? Have you measured the number of attacks?

It is not a torrent, no. Dozens up to hundreds, rather than hundreds to thousands.

But they would very likely have succeeded, right? It's a fairly turnkey vulnerability.

> I run a tiny server. I like this server a lot. I only patched an hour after the Debian package was ready and didn't think about it again. Do you mean to imply there's a real chance my little server has been compromised?

Can't say one way or another. Have a look at your log file for POST requests in quick succession for things like

  /_next 
  /_next/server
  /app
  /actions
  /api
  /dashboard
> [Edit:] My server is quite public too. It hosts four SLDs and many subdomains and receives both human and bot traffic. Only one or two subdomains use PHP, but a reasonable attacker surely tries all of them.

All my "obviously PHP app" domains got visited. None of my bespoke app domains (which are not obviously PHP). Though over time, the bespoke domains do get a whole bunch of boring probes for WP vulnerabilities etc., like all websites get.

tasuki 21 minutes ago

tclancy an hour ago

Agreed. It made my ancient old man face tear pores by smiling when I saw people organizing in the comments to throw sandbags against the wall while waiting to be rescued.

antihero an hour ago

It’s scary that people haven’t been able to move uphill though.

dofm 32 minutes ago

InsidiousWombat 19 minutes ago

I'd like to express my dissatisfaction that the "big guys" are basically getting free security over getting earlier disclosure.

Just saying "hey blocking multipart uploads can mitigate most of attacks early would save people so much trouble. Of course not every CVE will have workaround but many do and whole secrecy about releasing it is only to benefit of few big tech companies and nobody else

antihero an hour ago

It is bizarre to me that servers are considered something to be “lost” in this day and age. They should as borderline ephemeral as us.

dofm 36 minutes ago

By "lost" I mean, it might have been broken, commandeered, exfiltrated.

This is PHP world; it may be a share nothing architecture, but it's full of long-running VMs and very long-running apps.

cortesoft 8 minutes ago

I think calling private data "lost" if it is accessed is not a misnomer, even if you have backups.

You lost its privacy

pseudosavant an hour ago

Is it just me, or is it the truly brave that decide to deploy and protect PHP instances? Especially if WordPress or Drupal are involve?

I finished moving the remainder of my stuff off of PHP and WordPress last year and haven't missed it at all. Backwards compatibility was typically pretty bad.

It seemed like maintaining existing working PHP code was always a cycle of: upgrade to newer PHP, that version has breaking changes, fix that code or update to a new WordPress (plus all of the plugins that would inevitably need updating too).

dofm 9 minutes ago

I don't really want to be in the WordPress world anymore (I still maintain a couple alas).

But this isn't about PHP code, really — this is about C code (with less-than-ideal exception handler patterns). This problem is more Heartbleed than WP vulnerability.

I quite like modern PHP, I don't really think it's necessarily any less secure (exception handler weirdness notwithstanding), and more to the point, I don't think not using it is any kind of automatic improvement in web app security. It's not like server-side JavaScript is intrinsically better.

I am certainly doing some thinking today; I switched off a couple of web servers so I didn't have to think about them while I was working on other stuff, and actually I think they might not get switched back on. But it's not so much that they are running PHP as that they were kind of neglected and it's always worth reconsidering what you need to keep around.

I think I have reached a point where low value stuff is not worth subsidising just for fun.

technion 37 minutes ago

In nearly every org I've been in or contracted to, the public landing page of the company gets a special place outside of any ops of general technical team, and is instead the work of a marketing group or a "creative" outsourcer who will default to Wordpress on PHP.

jonwinstanley a minute ago

quotemstr an hour ago

[flagged]

dang 26 minutes ago

Please don't cross into personal attack.

https://news.ycombinator.com/newsguidelines.html

quotemstr 24 minutes ago

dofm 28 minutes ago

Well, OK then:

1) you're being rude, just stop it and get a grip

2) actually, this particular mitigation is very clearly stopping all the unusual patterns of POST request attempts I can see (it's not usually a busy server)

3) I know it is not the only mitigation that is necessary

4) … so it isn't the only mitigation I have applied

5) I am not working under a false sense of security, and I know it is temporary

6) I am not an idiot, and I am working on patching this machine, but this particular server has a unique and complicated configuration and needs a bespoke build

7) I have been prioritising much more serious risks for other people, all day, for no pay

8) again, to reiterate, you're rude.

dang 26 minutes ago

dannyw 6 hours ago

> 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.

xp84 5 hours ago

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 4 hours ago

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.

thayne 2 hours ago

tclancy an hour ago

Definite candidate for the next "What Did We Get Stuck in a Twitter Video this Year?" list.

MallocVoidstar 3 hours ago

That video was published 4 hours ago by lcfr_hax, the embargo ended four hours ago. Was it posted earlier and then deleted or something?

0c3ca83 3 hours ago

bombcar 5 hours ago

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

yreg 5 hours ago

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

atymic 5 hours ago

That's the one

lenerdenator 3 hours ago

This is your brain on anime waifus.

amelius 38 minutes ago

We should really move to a different security model on the internet.

For example, when I buy something from a webshop, why does that webshop need my personal information? Why can't I give it a token, which it can then use to send my package, because only the postal system knows the address coupled to the token, etc.

And we should also ban user tracking for advertising purposes, obviously.

zadler a minute ago

What kind of political / economic system would make user privacy a priority? I'm guessing not finance capital neoliberalism...

dang 4 hours ago

Related:

PHP 8.2.35 - https://news.ycombinator.com/item?id=50180873 - Oct 2026 (439 comments)

PHP2Shell: AI uncovers critical RCE in PHP - https://news.ycombinator.com/item?id=50180836 - Oct 2026 (146 comments)

PHP session.upload_progress heap UAF (CVE-2026-109618 / -109619) - https://news.ycombinator.com/item?id=50176077 - Oct 2026 (61 comments)

Security advisory: Critical remote code execution vulnerabilities, update now - https://news.ycombinator.com/item?id=50172041 - Oct 2026 (631 comments)

Tell HN: 2x PHP RCE CVEs with CVSS 10.0 Incoming - https://news.ycombinator.com/item?id=50167754 - Oct 2026 (60 comments)

fg137 5 hours ago

> 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.

Tepix 4 hours ago

Perhaps Chainguard will be the last to receive the next bug report.

InsidiousWombat 17 minutes ago

Given how security moguls are handling that, we should go back to "just release it, consequences be damned". Coz that gets normal people better chance of actually fixing it

chrisvls 4 hours ago

I’d say getting called out like this is a consequence.

eviks 3 hours ago

So people will keep doing that

semiquaver 3 hours ago

That sounds oddly threatening, especially given that chainguard is in the right here. Embargoes are stupid in 2026 and make no sense. The rumor of this issue was enough for it to be independently discovered by several white hats and almost certainly many threat actors.

nicce 2 hours ago

> Embargoes are stupid in 2026 and make no sense. The rumor of this issue was enough for it to be independently discovered by several white hats and almost certainly many threat actors.

The point of the embargo was to prevent all rumors? But it did not hold.

streetfighter64 2 hours ago

kbenson an hour ago

What are these "rules" you speak of? There's usually nothing binding in these agreements. It's just groups either trying to do the right thing by end users or trying not to look like assholes, get a better payout, or some combination thereof.

Finding an exploit and publishing is is not against the law. In some cases, publishing immediately is the responsible thing to do. For example, when it's actively being exploited in the wild, and waiting just puts people at risk that don't have any recourse to protect themselves, since they don't know they're at risk. There can be nuance to that as well, but in general, as soon as it's being exploited, anything that makes it harder for end users to a) know there is an exploit, or b) tell if they're susceptible to it (e.g. through a POC) is just taking away people's ability to take the action they deem appropriate.

jopicornell 2 hours ago

I think the PHP security team and the whole PHP team could have been more communicative and keep releasing information, adapting to the news, suspected exploits and mitigations.

If a video is released showcasing the exploit and following mitigation recommendation, PHP should clarify what it is and if the mitigations are recommended or not. From the pre-announcement: > We reserve the right to release earlier should details of either vulnerability become public, or should evidence of active exploitation appear in the wild.

If no info is released by them, no other party should have released anything. If info is released or leaked from partners or involved parties, you should notify and explain what's going on.

But no, complete silence from PHP news or any PHP community member.

I get that it was a complicated situation, and I think PHP is the "less wrong" party involved, but I think this constructive and external criticism could help in the future. It has been an interesting day (GMT+2 here) and a rollercoaster of monitoring and mitigating without any reliable source.

Cthulhu_ 23 minutes ago

> But no, complete silence from PHP news or any PHP community member.

Not entirely correct as they clearly announced that they were going to release a fix at a specific date and time; the mitigation doing the rounds was not adequate and if the PHP people republished it, it would lull people into a false sense of security. Overcommunication is also bad, especially if the official platform or the individual members are being watched by tens of thousands of people hungry for news or updates.

They knew (since august, arguably since 2024), they had a fix ready, everything was in place. Except for the untimely / accidental early leaks.

jopicornell 9 minutes ago

The complete silence I refer is after the incidents and leaks. They stated in their preannouncement "We reserve the right to release earlier should details of either vulnerability become public". That sounded to me that if something is leaked, they'll release earlier or clarify. Neither was done and only after the release, clarified things.

But yes, the preannounce was the right move and the leaks were unfortunate, complicating things. But if cloudflare, bunny and other actors start mitigating in their WAF, I think something has gone wrong and, either you act by releasing earlier or calm the waters saying "the exploits are wrong" as per stated in their post, they thought it was the case.

InsidiousWombat 15 minutes ago

If mitigation is known, it should be posted as soon as it is found. Not "wait patiently for packages to update and hope to not get hacked".

bawolff 2 hours ago

No meaningful info was released. A lot of incorrect info was speculated on.

I have a lot of sympathy for php team - it would be a lot of work to respond to every conspiracy theory on twitter, while trying to get everything ready, in the middle of the night no less.

jopicornell 39 minutes ago

I have a lot of sympathy for the PHP team as well, I hope it doesn't sound like it.

A lot of speculated info was right: the mitigations were mostly right, the video showing exploitation was real and the release of a fixed image was real.

I think if you do a pre-announce, and you say that you could release it earlier or release new information and you don't, and there are reasons to inform your users, then even if it's the middle of the night for you, you should.

As they stated, they are a small team and they have changed their structure, and they are learning and improving. I think if something like this happens, info is vital for us, the administrators of PHP servers

eviks 3 hours ago

> 2024, PHP underwent its first external security audit

> PHP security team, operating on consensus, struggled to choose

What an unfortunate waste of a security audit. (and consensus is an obvious flaw in decision making)

> PHP runs a large share of the web... Yet security work on PHP itself still depends on a small group ...

Another unfortunate big structural issue that's unlikely to change.

Are there structurally much safer ecosystems out there?

berkes 2 hours ago

> Are there structurally much safer ecosystems out there?

Several attributes make a safer ecosystem. An important one is diversity - technical diversity.

For an interpreted language, the runtime is important. Python has several runtimes, as does Ruby. Javascript also has several, from the few browsers, to node, deno and bun. PHP has for all practical purposes, only one. So if there's a security incident in PHP, it affects almost all users. But when e.g. JRuby has a vulnerability, it will affect only a fraction of the installed ruby applications.

For compiled languages, the tooling, libraries and runtimes is where diversity is important. With e.g. rust, the vast majority of CVEs come from libraries (crates). But since there often are several crates for a single concept, diversity helps mitigate here too.

Cthulhu_ 18 minutes ago

> PHP has for all practical purposes, only one.

I know you added a caveat and all, but no, PHP has a number of alternative runtimes just like the other languages you mentioned: https://github.com/gakowalski/alternative-interpreters#alter...

But again with all the ones you mentioned, they have a "core" runtime that the vast majority of production apps use, so if NodeJS has a vulnerability it would be just as big.

The interesting one will be whether "boring" ports - like recently Typescript's TSC from Typescript to Go and now to Rust - will be safer for being the same code and logic, converted to another "safer" language (by transpilers or LLMs).

InsidiousWombat 14 minutes ago

...given amount of CVEs for Ruby that appears to not matter much

barelysapient 3 hours ago

I wonder if that isn't a side effect of how its structured...

When a corporation sponsors the language, such as Java, Go, .Net, there's an inherent economic component which acts as a forcing function.

PHP being a foundation sounds nice. But consensus wasn't strong enough to affect the key outcomes.

rvba 25 minutes ago

why nobody in foundation management was not intereated in resulta of rhe security audit?

making php is the core of (checks notes) php foundation

or is the management full of completely not technical people who use it to boost their CVs?

redox99 2 hours ago

Rust and go don't have a C backbone like PHP does. So they are inherently safer to these kinds of vulnerabilities.

rafram 2 hours ago

Garbage collection is also an option. Lots of backends on the JVM!

(Of course there's Log4shell, but that could've happened to a Rust-based stack too, and might be more likely to, considering the proliferation of deeply-nested dependency trees full of tiny libraries in that ecosystem.)

barelysapient 2 hours ago

it's a good point. I wonder if we'll see a PHP fork and rewrite in rust. like tcrs. given the recently issues they would seem to benefit the most...

Cthulhu_ 17 minutes ago

gjsman-1000 3 hours ago

Yes. They're operated by big tech and called C# or Java.

nradov 2 hours ago

While the main Java and .NET virtual machine implementations are much more secure than PHP, they were still written at least partially in unsafe C++. I won't be surprised if frontier LLMs eventually find more vulnerabilities in those platforms.

dalvrosa 2 hours ago

Some code example for the exploits https://github.com/david-alvarez-rosa/php-rce

imglorp 16 minutes ago

> In 2024, PHP underwent its first external security audit in years. The PHP Foundation secured funding from the Sovereign Tech Agency to organize this audit ...

Well that's your problem right there! There are trillion dollar companies profiting off the back of open source projects without supporting the projects adequately. Why should they be scraping for funding for basic table stakes like audits?

ernubufiei 5 hours ago

> 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.

yreg 5 hours ago

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 5 hours ago

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!"

cobolcomesback 5 hours ago

cryptonym 5 hours ago

jamietanna 2 hours ago

skrrtww 5 hours ago

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 5 hours ago

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

bcvvvy 5 hours ago

cpa 5 hours ago

Hamuko 5 hours ago

corford 5 hours ago

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

yardstick 5 hours ago

bawolff 4 hours ago

The video has no usable details in it.

It's maybe not professional to release an omg panic video, but not even remotely the same thing as what chainguard did.

dylan604 3 hours ago

numpad0 4 hours ago

cubefox 5 hours ago

> 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 5 hours ago

andix 15 minutes ago

There were signs that others broke the embargo too. Public (this one video everyone is talking about), but maybe also non-public. There were some rumors going around which part of PHP was affected. That was enough for some people to figure out the vulnerability.

But it's also possible, that some attackers got non-public inside information.

If the embargo is already broken in a meaningful way, it suddenly becomes much less clear if it is still in place after all. Emphasis on >less clear<.

tflinton 5 hours ago

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 5 hours ago

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.

danso 5 hours ago

skrrtww 5 hours ago

gjsman-1000 5 hours ago

rskeens 5 hours ago

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.

blantonl 5 hours ago

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

john_strinlai 5 hours ago

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 5 hours ago

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 5 hours ago

lenerdenator 3 hours ago

arm32 5 hours ago

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

Grollicus 5 hours ago

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 5 hours ago

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.

mirashii 5 hours ago

ebilgenius 5 hours ago

Hamuko 5 hours ago

maqnius 3 hours ago

I was asking myself today; how to ensure that you don't miss a cve? I mean you'll sooner or later stumble across it if you're monitoring your communities but I thought that maybe there exists some kind of central solution, like a service were you could subscribe for your tech stack and get notified?

T0Bi 3 hours ago

Big companies usually use some sort of vulnerability response management software which is connected to your CMDB, ideally containing SBOMs of everything you use, and subscribed to various providers of CVEs. Those tools then map the CVEs to your SBOMs and you'll get alerts, security incidents and so on.

berkes 2 hours ago

Several tech stacks have this built in or available.

For my rust applications, I use "cargo audit" which checks all dependencies against the CVEs. For my typescript and javascript applications, deno audit and/or yarn npm audit.

For the rest of the stack `debsecan` does exactly what you want on Ubuntu: report CVEs for installed software.

yreg an hour ago

I was thinking about this as well today. And while I'm sure there are many cybersec companies that send out alerts, I trust this forum the most.

Maybe it would be worth it to have an agent that knows your stack, reads the top threads on hn all day long and messages you when it thinks there is something serious going on that could impact you.

bmurphy1976 3 hours ago

I don't think there's any robust method. I lurk HN, subscribe to security lists, run our code through scanning tools regularly. All options suck, all options have gaps, and all options mean you have to stay on the hamster wheel.

bredren 3 hours ago

I’m curious about this too, although I would somewhat hesitate to rely on that, except as a contributing point of information.

PHP2SHELL, in particular, made me expand my weekly security review to include my external network resources.

The natural conclusion for this seems to be realtime monitoring CVE and pre-CVE vulnerability indications in exposed stacks.

jungturk 3 hours ago

Lots of licensed solutions have this (typically SAST or DAST tooling like Snyk, etc...). Given your build manifest/SBOM they cross-reference CVEs for vulnerabilities during/after build time.

Some have free licenses, many don't.

mk89 2 hours ago

There are also better tools like Sysdig, Twistlock, etc. which scan containers at runtime for CVEs.

Sometimes build time is too slow (e.g., a repo that doesn't receive updates every day or so).

ktbwrestler 3 hours ago

I may be misunderstanding this but think the hard part about building a threat intel feed like this is just trusting that the underlying integration would surface something you care about... especially if you want to DIY it. You can scrape HN, GitHub advisories, NIST, whatever you want... but you may give yourself a false sense of security after seeing the "all clear" checkbox each morning

I hope that someone has some sort of a reasonable approach here / I would love to help work on something open source if not

rcbdev 2 hours ago

GH Dependabot.

knowinow 2 hours ago

Any tool to scan dependencies takes various inputs like repos, container stores or already built SBOM and gives you warnings. It doesn't much matter if you have actual code and repos as long as you know how to point it at some. The fremium ones like snyk would love to send you an email report on growing CVE counts on your last run but only until hell freezes over..

SoftTalker 2 hours ago

Turn on automatic updates.

InsidiousWombat 13 minutes ago

but the embargo delayed the updates

nradov 2 hours ago

That's great until an attacker compromises the automatic update system and uses it as a vector.

SoftTalker 2 hours ago

ezfe 2 hours ago

grumple 2 hours ago

This is how you get wrecked by malicious packages being published or other breaking bugs. Pin your versions.

adithyassekhar 4 hours ago

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

otterley an hour ago

And nothing of value was lost.

yreg 3 hours ago

SomethingAwful too

doublerabbit 3 hours ago

DeviantArt as well

DooMMasteR 2 hours ago

bowersbros 5 hours ago

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

emilburzo 5 hours ago

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.

InsidiousWombat 10 minutes ago

Linux Kernel approach of "just publish fix without fanfare" seems to be least compromising way to do it. Every bug can be security bug

cobolcomesback 5 hours ago

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.

dofm 2 hours ago

yangm97 3 hours ago

A private build followed by a manual push would take literally two commands and could be done from a maintainer’s laptop… it is not rocket science.

Leherenn 2 hours ago

inglor_cz 4 hours ago

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 4 hours ago

modeless 5 hours ago

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 4 hours ago

lol768 5 hours ago

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

dofm 3 hours ago

FWIW, Docker images are a nice-to-have, but OCI containers are not how most PHP users get their PHP.

For all the long-tail users, PHP is a distro package. That route needed the most work instead, and it got it.

berkes 2 hours ago

There's over 3 million downloads per month for the official PHP image. That may certainly not be "most PHP users". But still is a a lot of users.

I'm quite certain that your exact sentiment is why the images weren't updated immediately: I'm afraid PHP foundation doesn't see docker images as a particularly important distribution system.

dofm 2 hours ago

fguerraz 5 hours ago

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 5 hours ago

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.)

InsidiousWombat 7 minutes ago

dylan604 3 hours ago

thinkindie 5 hours ago

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

kyriakos 5 hours ago

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

berkes 2 hours ago

PHP foundation also doesn't "Run" the apt or rpm packages, yet they certainly coordinated with debian, and other big distros to push the updates out timely.

Now I don't know what happened here. Maybe PHP foundation reached out to docker but got no help, maybe they simply forgot about docker as distributor of their software.

eqmvii 5 hours ago

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

Droobfest 5 hours ago

Never using docker hub ever again

lol768 5 hours ago

> 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 5 hours ago

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.

bawolff 2 hours ago

I saw two on twitter, they were both pretty far away.

nicce 5 hours ago

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

dannyw 5 hours ago

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

InsidiousWombat 3 minutes ago

Nothing's gonna happen, just as with previous embargo breaks, people complain yet nobody involved gets punished

ChrisArchitect 5 hours ago

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

NSUserDefaults 41 minutes ago

Very disappointed by Hetzner Ubuntu mirrors not getting updated in time. Had to manually override to get the patch.

Cthulhu_ 13 minutes ago

Same here, I suppose they didn't bother triggering a cron job early? They did patch managed servers and the like according to https://status.hetzner.com/incident/f4144d55-38c3-48d1-8664-....

xavdid 3 hours ago

Off topic, but TIL that .foundation is a TLD!

jooops1 2 hours ago

So instead of using a memory safe language or harden the C code they hope LLMs will find bugs in their code? Neither do they mention how their way to patch Exceptions into C makes It very difficult for Fuzzers to find those bugs? Good luck this statement should tell everyone to migrate away from that horrible language and runtime.

Cthulhu_ 12 minutes ago

It's one of the biggest runtimes on the internet; the C code will be some of the safest out there. Rewriting to a memory safe(r) language is a huge bet, even today. Nobody's stopping anyone from forking and creating alternative runtimes.

ThaJay an hour ago

This is what I thought as well. How is this still so popular if it has such fundemental flaws? With the increasing power of LLM, more vulnerabilities will definitely surface sooner or later.

topham 2 hours ago

Please identify a non-toy language that has never had a vulnerability.

redox99 5 hours ago

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.

pluc an hour ago

It's pretty popular in Go: https://frankenphp.dev/

TheJoeMan 4 hours ago

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.

berkes 2 hours ago

There should be more interpreters or runtimes. Regardless of the language they are written in. Indeed a rustPHP, maybe a JPHP, cPHP, etc etc. There is zend, but AFAIK that's still using the "official" PHP under the hood. And there is or was hiphop. Not sure how that is going, though.

Because now a vulnerability in PHP affects practically 100% of the users. But with more diversity, it would affect only a part. And if one runtime proves insecure more often than another one, organizations have a choice to move to an interpreter that better fits their security needs.

cute_boi 4 hours ago

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 4 hours ago

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

mbac32768 an hour ago

vaylian 4 hours ago

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

sevenzero 4 hours ago

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?

rectang 2 hours ago

I'm generally bullish on migrating C projects to Rust, but that will only reduce a particular class of vulnerabilities. There will still be other vulnerabilities which remain discoverable by LLMs, and for those, the problem of accelerated exploit creation will remain.

I'm really not sure how you mitigate this issue, other than serving static HTML and reducing the attack surface to cut out dependencies like PHP.

cubefox 6 hours ago

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

wtfphp 2 hours ago

Hah. Wiz Calif-oAI.

cubefox 5 hours ago

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

bombcar 5 hours ago

> 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.

ck2 5 hours ago

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)

Cthulhu_ 9 minutes ago

Given the exploits are literally out there, 0.

Titan2189 2 hours ago

You forgot to say "Asking for a friend"

TZubiri 5 hours ago

What do you mean by stage these conditions?

riddley 4 hours ago

0. Seriously.

petecooper 6 hours ago

>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.

charcircuit 5 hours ago

>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.

BHSPitMonkey 4 hours ago

No... Uncoordinated disclosure meant that attackers were suddenly armed with detailed information about an already-hyped severe vuln hours before the majority of downstream consumers had the means to patch their systems.

Maybe your calculus could hold if Chainguard's registry were the primary distribution mechanism for PHP in use worldwide (such that the benefit of an updated image would at least be widespread compared to the sitting ducks relying on the other repositories), but it isn't.

charcircuit 2 hours ago

If the sites are taking no action they will be vulnerable no matter when the patch is released. For the people who do take action before chainguard's release the safe option was to just turn off your server (and let any big competitor site stay up and take your traffic since they got the patch ahead of time). People taking this option will be offline until a fix is available for them to use. They are not in danger of being hacked.

Trying to say that uncordinated disclosure is bad because people might get hacked yesterday instead of today just is not a convincing argument to me. I prefer the solution that results in the minimum amount of downtime for sites and sites provide value to society.

S0y 5 hours ago

You need to pay to get access to chainguard images.

blantonl 5 hours ago

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.

charcircuit 2 hours ago

lrae 5 hours ago

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

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

tflinton 5 hours ago

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

john_strinlai 5 hours ago

not the ones related to this

miohtama 4 hours ago

The old joke:

The guide to PHP security:

Use something else.

The end.