Top
Best
New

Posted by tuyuri 8 hours ago

PHP 8.2.35(github.com)
Related ongoing thread: Today's PHP security release, and how we're strengthening security - https://news.ycombinator.com/item?id=50182987
929 points | 520 comments
nr378 7 hours ago|
Looks like a co-ordinated disclosure between Wiz, Calif and OpenAI:

https://www.php2shell.com/

https://www.wiz.io/blog/php2shell-php-rce

https://calif.io/php2shell/

https://openai.com/index/coordinated-disclosure-of-critical-... (not yet live)

https://thephp.foundation/blog/2026/10/21/todays-php-securit... (not yet live)

esquire_900 7 hours ago||
I feel like all "non-inner-circle people" here are taken for a laugh. OpenAI and these security companies sat on this for 2 months, decided for themselves who gets access to an early fix, and then leave the rest out to dry while they failed to properly contain it.

The official interim fix for php8.5 [1] could have been published 24h ago, or even 2 weeks ago, without revealing any security details. Specifically once the POC came online. Would have been significantly more useful than these polished blogs.

Perhaps I'm missing something here, but the costs (dev/sre time, missed sales, potential data leaks and hacks) of the way that this was handled is significant.

[1] https://github.com/php/php-src/security/advisories/GHSA-6wmf...

john_strinlai 7 hours ago|||
>OpenAI and these security companies sat on this for 2 months

these security companies reported it 2 months ago. it took a month for the php security team to acknowledge it and another month for the php team to develop & release the patch.

if you're going to be upset at anyone it should not be the reporters.

>The official interim fix for php8.5 [1] could have been published 24h ago, or even 2 weeks ago, without revealing any security details.

publishing the fix = publishing the security details.

bombcar 7 hours ago|||
This really sounds to me like "they filled out some webform" or "sent an email to security@php that read like any of the ten billion we found vulnerability in your code please send money emails they get.

If I had details on a RCE like this I'd report it but if I got no response for a WEEK I'd be trying other venues.

dannyw 7 hours ago|||
I imagine more details will come out over the coming days, but it’s not uncommon for severity to be under-estimated in the beginning; and then “oh shit” as you dig deeper.

We don’t know when it went from a “memory safety issue” to “php2shell/RCE”.

Calif’s report is a little light on timelines, but reading between the lines, it seems they took a while to turn this into an actually exploitable vulnerability.

Finally, at least pre-LLM (and maybe a bit outdated now), responsible security disclosure norms is that you usually do wait for vendor (up to 90d) if there’s no signs of active exploitation. Even if it’s a RCE. Actually, especially if it’s a RCE.

The last thing you wanna do is go pinging random non-security PHP contributors or maintainers and have it leak with zero patch. That is truly the worst outcome.

Yes, this is bad, but also, it’s apparently been bad for decades; and it could’ve been much worse.

Maxious 7 hours ago||
According to this post, one of the researchers was a former PHP security lead who already knew about the bug since 2004. So I'd assume they would be taken as credible by the current team https://calif.io/php2shell/
dwohnitmok 6 hours ago|||
As I mention elsewhere (https://bugs.php.net/bug.php?id=78876) I'm very confused. Looking at the PHP bug tracker the specific bugs were fixed. So my best guess is that the LLM was able to find alternative variants that still worked? But then the report makes less sense.
Twirrim 6 hours ago||||
Assuming that it could have been spotted in their inbox, amongst a probable flooded of LLM slop like a number of security mailing lists for open source projects that I know of. We've all seen the impact on open source github issues, hackerone etc. The same is happening to standard email disclosure paths.
soulofmischief 3 hours ago|||
These illustrations are neat but severely distracting given that each make a mountain out of a molehill.
john_strinlai 7 hours ago||||
>This really sounds to me like "they filled out some webform" or "sent an email to security@php that read like any of the ten billion we found vulnerability in your code please send money emails

i highly doubt it. these are pretty big names in the security sector who have plenty of experience reporting high severity vulns.

fock 7 hours ago||
and they also have plenty of exposure to their motherships burning money on LLMs
ferngodfather 4 hours ago||||
I've said elsewhere I am sick to death of reading AI written "security disclosures". Even for genuine issues, it just saps my motivation to fix them.

That said, PHP team handled this poorly. How does letting everyone know so they can "prepare" help anyone at all. It just creates panic.

letmevoteplease 2 hours ago|||
If you provide forewarning, system administrators around the world in various time zones can get ready to update at the same hour the fix is released, which is very important. Being hours late is not acceptable for a vulnerability like this.
ferngodfather 2 hours ago||
And yet it seems all their forewarning did was lead to the proof of concept being leaked many 'valuable' hours before.
paulddraper 56 minutes ago|||
[dead]
paulddraper 2 hours ago|||
Are you victim blaming the reporter?

If you have a bad process, fix the process.

charcircuit 7 hours ago|||
Why does the PHP security team need to acknowledge it and develop the fix? It's open source software.
lokar 7 hours ago|||
If you want an orderly fast global rollout you need to have the maintenance team and distributors working together.
paulddraper 54 minutes ago||||
Because...that's what the PHP security team does?

No one needs to use their work, or indeed PHP at all.

But that's why the PHP security team exists.

warkdarrior 4 hours ago||||
So if Wiz produced their own patch to PHP, and Calif produced their own (slightly different) patch, and OpenAI produced their own, which version should I use, as a user of PHP? Should I manually merge them? Is Calif's better than Wiz's? Is OpenAI's better than Calif's? Are they complementary?
sam1714 3 hours ago|||
That does happen with downversion software. Red Hat may distribute a backported patch to some component which isn't the same as Canonical or Debian's.

Most users, who don't know the answer to your questions, rely on the distro to figure this out (and often pay good money for it).

charcircuit 4 hours ago|||
They already were in communication with each other. They could have come together and decided on one that mitigates the issues they've found.
weird-eye-issue 7 hours ago||||
So anybody can just push out a new release of PHP?
charcircuit 5 hours ago|||
Yes, someone could have published a safe version for people to use for the 2 months to get the actual fix done.
john_strinlai 5 hours ago||
>Yes, someone could have published a safe version

this is basically the same as releasing a working exploit.

charcircuit 4 hours ago||
And that's not a bad thing. If it was, the the logical conclusion would be to never publish the fix and don't preemptively patch before active exploitation.
solyin 3 hours ago||
Yes it is.

Say I release a fix. I'm some rando but I go out to the world and say I fixed an issue with php. Use my version instead! Not telling you what I fixed, it's a secret, just trust me.

It will take, with LLM help, attackers a couple hours, tops, to reverse engineer my fix into active exploitation. Meanwhile, I'm some rando so no one's even heard of me, people who do hear don't automatically trust me to install my fix, so very few people have my fix. Meanwhile, the exploit is out there thanks to me and people are getting their sites hacked thanks to me.

That seems like a problem, no?

charcircuit 1 hour ago||
How is what you are describing any different than what happened today? Except the vulnerabilities were also explained. You can say that sites are getting hacked right now due to them releasing the security update.

>I'm some rando so no one's even heard of me

Why do think people need to have heard of you. If you are reporting this issue directly to distro maintainers, security companies, hosting companies, etc first you can help use their names as part of the marketing push to raise awareness.

Dylan16807 31 minutes ago||
> How is what you are describing any different than what happened today?

There was an official patch within a few hours. It probably would have been a lot longer.

And that was the screwup case. If today had gone correctly the official patch would have been out by the time the bug was public.

charcircuit 14 minutes ago||
And in the situation where they released a security patch 2 months ago, there would be a security patch before the bug was public.
swiftcoder 7 hours ago|||
Sort of by definition of open-source, yes. It's just that nobody downstream is likely to accept Joe Public's random fork of PHP.
LordDragonfang 4 hours ago|||
You're confusing PHP the product with PHP the codebase. The former is what is the only relevant part in the security world, where a product is synonymous with its vendor (even FOSS).
swiftcoder 2 hours ago||
I mean, it's all semantics at the end of the day.

The PHP maintainers have generated a certain amount of goodwill over their long service, which leads downstream consumers to trust their releases over every other packaging of "PHP the open source codebase".

Nonetheless, there are countless forks of that codebase, and there are other releases than the ones made by the PHP maintainers. Any particular downstream could switch to another source of releases if presented with a compelling enough reason.

0x457 6 hours ago|||
Did start writing software this week?
wat10000 7 hours ago||||
What's the other choice? OpenAI et al could have developed a patch (for all we know they did) but you need the PHP team's participation to get it out. The alternative would be to fork the project and put up a forked release with the fix, which would have been incredibly disruptive.
theboblong 6 hours ago||
I'm glad they didn't do anything disruptive, then. Like wind the world's CIOs up into a frenzy of FUD and bring thousands of servers down in a coordinated panic attack synchronised to the minute.

Imagine if they had just patched the code and rolled it out with an advisory?! Oh my GOD! Won't someone think of Sam Altman and his huge pile of debt?!

aDyslecticCrow 4 hours ago||
Pre AI, silently publishing a fix to a security vulnerability was considered bad practice.

Post AI, Its efficiency pre announcing the exploit to bad actors until the official disclosure.

You can just watch the diff log of every open source project with a small local model, and look for anything that touches buffers, function pointers, or shell integration.

It could be an hour between release of a fix before the exploit starts attacking servers.

Guess what also could happen within an hour? A coordinated Internet wide panic that shuts down all vulnerable servers.

---

We actually have a recent example. OpenAI hack.

An undisclosed vulnerability fix to a image formal lib; packages into debian 12 running in a docker, used by imagemagic, used by discourse running OpenAIs user forum.

justinhj 7 hours ago|||
What would you have a security team for then?
charcircuit 4 hours ago|||
To handle the official solution and drive long term changes to reduce similar security bugs from happening again. The current PHP security team does not seem capable to promptly release a fix, so having a community fix first seems preferable.

Mitigating a bug and developing a proper solution that is maintainable long term and supports future changes being made to the software take different amounts of time to develop.

dspillett 7 hours ago||||
One concern with the current environment is that as soon as a release comes out for such an important open source project, people will immediately point bots at the release to look for changes that might be related to existing security issues. This means that putting out a quick out-of-band release is guaranteed to result in people racing to exploit the problem before many even know there is an update out.

Whether keeping the update quiet and including it in the next normal release, where there are more trees obscuring the wood that is the security concern, and announcing the bug a short time later once anyone using distro updates or otherwise keeping on top of things have updated, would be safer overall than what has happened today is up for debate. I can think of arguments in both directions.

--------

[1] which does have a slight whiff of AI marketing about it - would a human-found issue, without the option of a big AI company to claim some credit, have been handled differently?

chilmers 6 hours ago||
This is not a "concern", this is literally what happens. Even prior to AI vulnerability scanning, release notes and diffs for any normal release or security patch of popular software were analysed and used to develop exploits, which could then be applied against non-upgraded instances. Nowadays, AI is doing this en masse and automatically producing exploits. And, as has been demonstrated, nowadays even the rumour of a major security bug is enough for people to find it, as people will immediately burn huge volumes of tokens looking for it.

Nor can you just keep it quiet and smuggle it out in a regular release as you suggest. For one thing, changes in important software are be linked to commits and have pull requests, reviews, etc. Changes without these will immediately raise suspicion, as either a malicious change snuck into a release, or as a "quiet" fix to a major vulnerability, completely undermining the purpose of keeping it quiet in the first place. Moreover, major vulnerability fixes cannot be "quiet", because the whole point is to get as many people as possible to upgrade as quickly as possible. If PHP (or whoever) push out a release containing a major security fix, but don't make this clear, then many people will be in no rush to upgrade, and will get pwned.

dspillett 3 hours ago||
> This is not a "concern", this is literally what happens.

Sorry, I should have been specific: the concern is that this will happen faster than even the more fastidious admins (or daily or even hourly automated checks) will spot and apply updates.

> nowadays even the rumour

I think a lot fewer people would have paid attention at all without the rumour. Some ne'er-do-wells might have scanned a larger update for security issues otherwise, but I suspect most of those spending tokens on PHP this week would not have bothered had there just been a standard maintenance release that may or may not have included changes for a security issue that may (but probably not) have been so globally significant.

That is, at least in part, why the question of how to manage the release of updates like this is not a settled debate.

> then many people will be in no rush to upgrade, and will get pwned.

The worst case that we may be heading towards is that for any services on public facing infrastructure we might have to automatically apply updates with little or no time to verify, just to try be ahead of the ne'er-do-wells, with even superficial updates not mentioning the changes until a short time after to avoid giving clues to those who will scan for security issues if any such is mentioned (or nothing is mentioned - saying nothing about a security-only update only works if you say nothing about all updates, and you don't want to hold off on security-only updates on a slow moving project that might not have a non-security patch for quite some time).

vikramkr 6 hours ago||||
It's not possible to publish a security patch for an open source software report without revealing security details anymore (and as of the past couple weeks I would not count on being able to do that for closed source binaries either). The moment you push publish everyone knows previous versions are compromised
stingraycharles 6 hours ago||||
“OpenAI and these security companies sat on this for 2 months”

I don’t think this what happened at all, and even less so to specifically call out OpenAI.

The issue was discovered using their model, it was disclosed, and the PHP team took months to address it. Eventually it leaked.

This is a process / people failure that does not involve the people responsible for discovering it.

flanz_10 3 hours ago||
this is the same tired conversation whenever coordinated disclosure happens

"we the people deserve to know about vulns on day 0"

oh yeah? and what happens when a 0 day is released?

it's the same ignorance over and over.

Avamander 6 hours ago||||
You can't do secret releases, people will figure out what you added or changed.

But they could have accelerated the patch release once the embargo was broken and rumors of a PoC started going around. There was no need to wait 12+h today until the release.

dannyw 7 hours ago||||
Maybe the NSA ‘requested’ some time to use the exploit on some high value targets.

Sure, it’s PHP, but plenty of companies or organisations might have some PHP running somewhere; and once you’re in, lateral movement becomes a lot easier.

DaSHacka 6 hours ago||
The NSA does not need to "request" time to use an n-day vuln. They have more 0-days than you can imagine.

They literally employ full-time Vulnerability Researchers doing nothing but 0-day discovery and PoC creation 24/7 to add to their horde. Plus contracting with the MIC for their full-time VRs for the occasional project.

bombcar 5 hours ago||
Exactly. Something like this is often the NSA realizing one of their pet vulns is being exploited in the wild by someone “not them” and so they burn it.
beberlei 6 hours ago||||
Php core security team decided who gets to know. The patch was huge it took that long.

See PHP foundation blog post on their timeline

pier25 5 hours ago||||
> OpenAI and these security companies sat on this for 2 months

The PHP team knew about it since September 21st.

chairmansteve 4 hours ago||||
Maximizing the PR value...
hparadiz 1 hour ago||||
And then they proceeded to cripple any of my agents working on this.
Capricorn2481 5 hours ago||||
> OpenAI and these security companies sat on this for 2 months, decided for themselves who gets access to an early fix

Amazingly, AWS Linux has not been patched yet.

MP_1729 4 hours ago|||
Of course it was OAI that decided those things, not the U.S. Government
john_strinlai 3 hours ago||
it was neither OAI or the US government.
chinathrow 7 hours ago|||
> Over the past two months, we led a coalition of maintainers, researchers, and security providers to address critical vulnerabilities in PHP, an open-source programming language used to run websites and web applications.

And they botched this as someone talked. To me this looks like they used this for a PR stunt and aimed for an RCE.

giancarlostoro 7 hours ago|||
If I understood the timeline correctly, there was an announcement made somewhere that an RCE would be announce w/ a patch, and the internet just scanned the entire codebase, they really fumbled this for the sake of having a PR post for OpenAI.

On the other hand, I don't mind AI companies doing this sort of thing, I'm sure a lot of our internet infrastructure could benefit from these sorts of fixes and changes.

ndiddy 7 hours ago|||
After the HN post came up, one security firm included "session.upload_progress.enabled", "session.use_strict_mode", and "php-fpm" in the SEO tags for their initial disclosure that a vulnerability existed. I imagine this was a good hint. https://web.archive.org/web/20261021005246/https://sansec.io... https://x.com/its5q/status/2112700519261032497
Maxious 7 hours ago|||
The somewhere was a loser on this very website https://daubois.dev/blog/cve-2026-109618-php2shell-rumors/
novafacing 7 hours ago||
This post reads like pure slop to me
joquarky 45 minutes ago||
Honestly, who cares at this point?

The slop announcements are getting more annoying than the slop.

pinevale 4 hours ago||||
> And they botched this as someone talked. To me this looks like they used this for a PR stunt and aimed for an RCE.

This is a pretty constant theme in the infosec industry. The idea is that you want to do the "responsible" thing and let all the major, multi-billion-dollar companies patch first, so you form a secret club. But then, you share a very juicy, gossip-worthy thing with hundreds of people and ask them to sit on it for weeks. And guess what happens: they don't. Having worked for a big tech company, I've been involved on a couple of processes of this sort, and they all suffered leaks.

And rest assured, we'll learn nothing and try the same thing again next month or next year. Because what's the alternative? If you 0-day everyone, you get more hate mail, not less. It's all of sudden about you, not the vulnerable code. Microsoft or Cloudflare calls you irresponsible when asked for a PR statement, industry bloggers bully you, etc.

janmo 7 hours ago||||
They haven't even been able to release the patch on time. Ubuntu still hasn't it
dspillett 7 hours ago|||
Debian has, though only for current stable (updates for oldstable and oldoldstable apparently about to drop) which might imply they had no advanced access to the update so could not pre-test and release immediately upon the coordinated announcement.
nolok 7 hours ago||
Sury is up for all versions too
rob 7 hours ago||||
Not true. I was able to `aptitude update` and `aptitude full-upgrade` before 10:00 AM EST (9:50 AM) and received the new php8.* packages and upgraded fine.
cpncrunch 6 hours ago|||
Still no update for ubuntu 20.04 which has support via ESM, even though the patch is available for php 7.4. There are a lot of people using older servers which still have ESM support.
cpncrunch 5 hours ago||
Patches have now landed for 20.04 and other earlier Ubuntu versions. https://ubuntu.com/security/CVE-2026-109618#status
kijin 7 hours ago|||
Anyone using a non-default version from the semi-official PPA by Ondrej Sury is still waiting for an update.

The launchpad server is throwing 503 errors all over the place, so that's probably the reason for the delay. Sury's own repo has the fixes all right.

phit_ 3 hours ago||
[dead]
hdgvhicv 7 hours ago||||
I had an email from usn recently
unethical_ban 6 hours ago|||
at 15:00 UTC, spot checking, Debian 13 has a fix, Ubuntu 26.04 has a fix with their own patch version number, Fedora does not.

Ubuntu: https://ubuntu.com/security/notices/USN-8948-1

Fedora package status: https://packages.fedoraproject.org/pkgs/php/php-fpm/

lee_ars 6 hours ago||
PHP 8.5.4-0ubuntu1.5 (the fixed version for Ubuntu 26.04) has been downloadable for me via apt from security.ubuntu.com for about 30 minutes. Perhaps check to see that you're not using a different mirror?
unethical_ban 6 hours ago||
You're correct, I was looking for the upstream patch number.
nicce 7 hours ago||||
Wiz is owned by Google and Argon gets the main credits. So difficult to tell these days. But AI is obviously useful here.

Edit: was looking Wiz post when citation was from OpenAI

chinathrow 7 hours ago||
Of course it's useful, but you can't absolutely not leak something as big as this.
anon1642 7 hours ago|||
I heard this was leaked several days early and that’s why folks seem to be on the back foot.

I’d press go too - if something this big was known to some but not all…

We’ll all get through together

tetraodonpuffer 7 hours ago|||
surprising it took nearly a month to acknowledge the bug

August 24, 2026: Wiz Research reports the vulnerabilities to the PHP security team.

September 21, 2026: PHP acknowledges the reports and begins developing a coordinated fix.

bramhaag 7 hours ago||
Took them almost 7 years even. According to the Calif write-up it was already reported in 2019 (https://bugs.php.net/bug.php?id=78876) and 2024 (https://ostif.org/php-audit-complete/).
polishdude20 7 hours ago|||
Lol wait so OpenAI's LLM to discover this vulnerability most likely just looked it up in an old forum post?
pixl97 7 hours ago|||
This isn't a terribly uncommon method of 'discovery'. In maths and sciences there have been tons of papers that have highlighted something new but were never really connected to anything else and then largely forgotten. Later they are picked up by someone else and connected to a much bigger whole.
hobofan 7 hours ago||||
It's only one piece in the full exploit chain.
abc42 4 hours ago||||
That's how 90+% of script kiddy -type hackings happen, isn't it. That or publically available databases without a password.

AI is gonna make our stuff pretty robust, eventually. The transition phase might hurt a bit.

charcircuit 7 hours ago||||
That's what my agent did to find a UAF. It just took a public one from calif off the internet and found it still flagged asan.
Maxious 7 hours ago|||
[flagged]
gcr 6 hours ago||||
The bug you posted was patched and fixed 6 years ago, and none of the other bugs in the audit showcase that issue. Are you sure these are the right links?
akersten 7 hours ago||||
No way to prevent this, says only language where this regularly happens
elmer2 4 hours ago||
Criticals happen in other languages all the time. You are seeing this with PHP in the news because it's used on 70% of the Internet.
akersten 2 hours ago||
https://fedi.katze.sh/@elise/117479383739450605

¯ \ _ ( ツ ) _ / ¯

phplovesong 6 hours ago|||
LOL

PHP will always be the slop before AI.

WJW 6 hours ago|||
So how does the exploit actually work? The best I can find is that they manage to use the corrupted generic decoder state to write a single pointer and associated PHP type information anywhere in memory, then immediately claim "this is RCE". Is that enough? From my (admittedly limited) understanding of such things, after writing code to the target memory you also need to be able to start actually running it. Or do they overwrite the PHP code (which is somewhere in memory) and then let the interpreter do its thing?
benibela 4 hours ago||
I am curious about that, too

Here was a PoC: https://jackalsyn.com/posts/php-up-2026.html

But it was withdrawn; now it says that it (CVE-2026-109618) is not an RCE and not even a CVE, apparently an addref call prevents the use-after-free. CVE-2026-109619 is still a memory safe bug, but they have no RCE for that one

pluc 7 hours ago|||
Wiz Khalif AI
darkwater 7 hours ago|||
Why is WordPress out of that list? Isn't it the single major PHP installation in the whole Internet across hosted and self-hosted instances?
trollbridge 7 hours ago|||
Well, WP is just a program written in PHP.
dspillett 7 hours ago|||
One of the most common PHP based applications out there, therefore a good comms channel (via their forums and any mailing lists, both public and for people who have managed instances with them or are otherwise paying for support contracts) to make sure people are aware of the need to update. That would make the company one worth keeping in the loop, if only in one direction, I would have thought?
trollbridge 7 hours ago||
Well, it would help if WP were actually controlled by one entity, but currently it's dominated by factions and infighting.
dspillett 7 hours ago||
Fair point. I thought that had died down, though for some years I've not had reason to keep particularly informed about the state of WP so I could be missing a lot of hot gossip.
ImJamal 7 hours ago|||
They have hosted instances as well though. Not sure their market share though.
bombcar 7 hours ago||||
Because the CEO of Wordpress has gone insane, basically.
nicce 7 hours ago||
Automattic is on the list, tho.
12837615 7 hours ago||||
WordPress is down right now. A bit late for patching though ...
LoganDark 7 hours ago|||
I agree, WordPress should be like the first thing they point out. I'd imagine most WordPress users don't even know it runs on PHP
luca4 4 hours ago|||
WizCalif.. dude xD
consp 7 hours ago|||
> https://www.php2shell.com/

Boy, do I hate these PR websites masquerading as vulnerability reports. It's slop all the way down with these companies.

bombcar 5 hours ago||
I wonder how early the domain was registered and when the first certificate was issued for it, whether you could’ve had advanced notice of this by watching the DNS records
rollulus 5 hours ago||
Guess what, there are answers to that question! October 14, 2026 was the date the domain got registered.
croemer 4 hours ago||
Domain registration doesn't mean that much. Many similar domains are already registered, eg python2shell.com is 5k aftermarket but js2shell.com is unregistered. Might not be a bad investment to register the .com for all the top PLs.
alper 6 hours ago|||
Do they consider this an example of a "good" response?
anon83748359 6 hours ago||
It’s in-line with the rest of the pho eco system.
wildmXranat 7 hours ago|||
Yet it was leaked and I can't see a single "Here's this piece of code you can run to validate the fix actually works"

It's like slop for infosec markters

freebsd_lovefes 7 hours ago|||
[dead]
Pxtl 7 hours ago||
Thank you, Wiz Khalifa.
dang 4 hours ago||
Related:

Today's PHP security release, and how we're strengthening security - https://news.ycombinator.com/item?id=50182987 - Oct 2026 (114 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)

OscarCunningham 6 hours ago||
Looks like there might be a second vulnerability: https://fedi.katze.sh/@elise/117479383739450605
modeless 5 hours ago||
There is now an iron clad defense against all memory safety bugs leading to RCE that is actually practical to use in production in many cases, and people should start taking it seriously. Any PHP install that has ~2x CPU headroom should be switched to a memory safe Fil-C build immediately. More generally, anyone running network-exposed C/C++ code that is not routinely pegging the CPU should recompile with Fil-C ASAP.
anonymous908213 4 hours ago||
"The entire world should use 2x more compute" is not a real answer. You can do that on your own personal computer which has compute to spare. For servers, you're already paying for the relevant amount of compute to serve your thousands or millions of users, and every % of overhead matters at that scale. You are suggesting everyone allocates a 2x budget for server-compute, or I suppose you're only talking about hobby servers where people are running tiny workloads and had so little traffic it doesn't matter?
n2d4 4 hours ago|||
A tiny minority of applications use a vast majority of compute.

If 97% of programs use 2x more compute, the total amount of compute used in the world will be nearly unaffected.

bombcar 2 hours ago||
Exactly, my fleet of machines is usually idling at 10% CPU or less.
Perseids 3 hours ago||||
In addition to what my sibling comments have said, there is also the advantage of pushing the ecosystem to safe and fast approaches as a whole. Imagine if the default was to run C/C++ software under Fil-C, if no other measures where taken by the developers, e.g. if the consensus interpretation for one of the current security regulations (NIS2 etc.) mandated it. There would then be an enormous incentive for software to provide faster alternatives to Fil-C, as there where 2x-4x speedups for the taking!

Come to think of it, I believe it would actually be a good idea to lobby for exactly that. Memory safety issues have been a plague in IT for far too long.

modeless 4 hours ago||||
Large, well-optimized services are running at high CPU utilization all the time. But there's a long, long tail of services that are running well below 100% utilization almost all or all of the time, and it's not just hobby stuff. Vulnerabilities in those services are still real and can be very important, and trading some otherwise idle CPU time for an absolute shield against memory safety issues is a good idea. Even for some services that do have high CPU utilization it may be a good trade to pay for more CPU to get that shield in this new world.
redox99 4 hours ago||||
2x PHP is still cheaper than Python and many other languages which most people would consider fine for your typical webapp.
square_usual 4 hours ago||||
Yeah I'd rather they spend 2x on compute than leak my data
captn3m0 3 hours ago||||
Running a parallel PHP-filc deployment at such times at even 2x costs would 100% be worth it. Especially that you'd only be focusing on web-facing deployments (and not background processors).
IshKebab 3 hours ago|||
> The entire world should use 2x more compute" is not a real answer.

Not in general no, but it is for PHP. If you cared about a 2x overhead why are you using a language with 10x overhead (conservatively)?

dannyw 5 hours ago|||
The patches are very dirty (thousands of `if (ZEND_HAS_OOM()) { .. return failure`); my first reaction is they've probably missed something.
akersten 1 hour ago||
People keep defending PHP (as they have been for ages) saying things like "oh, it could happen to any platform, this one's just so popular so the odds are higher" but then you take a peek at the diff for this fix and realize that nothing has changed since Fractal of Bad Design was published a decade ago. PHP is a scourge and unfortunately a still too popular one. The best time to realize the only safe option is to stop using it was in 2010, the 2nd best time is now ..
sharess 3 hours ago|||
Extremely embarrassing for OpenAI marketing. How did they not catch this?
andix 3 hours ago|||
For now this is just one person posting about it. Can be real, can be a mistake, can be a hoax. But if it's real, then OpenAI once again fudged up really bad.
preommr 3 hours ago|||
"skill check"

*rolls 3"

"Your IPO gets delayed another month"

Maxion 6 hours ago||
Meow!
spenvo 7 hours ago||
Edit: and it's live now 1hour 43minutes after. Edit 2x: well I spoke too soon. not actually live - the 8.4.27 tag appeared, but it's still an empty shell with no amd64 image to build from. Maybe other architectures can be built from though. Ugh. Now we're at 2hours 24minutes in. I know process steps take time/can't be rushed, and I know people mean well and surely some are unappreciated for what they do. That said: this debacle is making me want to reassess my deployment pipeline choices.

how does Docker not yet have a new, official PHP image ready, given such a big heads up? https://hub.docker.com/_/php Nuts this wasn't ready to flip on at :00 (or even earlier given the PoC exploit and even the official PHP fixes were out well before). Now we are 52 minutes past due. (posting comment again, because the other thread i posted in was marked as dupe.)

andrin 6 hours ago||
They even committed the fixed version to the repo, but it seems no images where pushed: https://github.com/docker-library/php/commit/e3eaff845f7a9f7...

Edit: Seems like GitHub has issues with merging PRs: https://github.com/docker-library/official-images/pull/22541

sunaookami 6 hours ago|||
Ugh these comments on GitHub. Don't people know when it's best to just post nothing? "516 hidden items"
teekert 6 hours ago||
Have you ever experienced a "Reply-all storm"?
maaarghk 6 hours ago|||
It went a few seconds ago. I was also surprised they didn't have advance access but thinking about it, with the whole thing being a public Github pipeline, it's unclear how they could have achieved it whilst simultaneously keeping the patch private. Is there precedent?
adlpz 6 hours ago|||
I have zero internal info, just guessing, but there's a PR from 5min ago asking to add someone as a reviewer for PHP images:

https://github.com/docker-library/official-images/pull/22544

Maybe the guy that has to click OK is asleep?

amykhar 4 hours ago|||
Images are there for docker now, but pecl has decided to have issues . ARGH
asimovDev 6 hours ago|||
they have a long process with multiple build steps before the images reach the registry.

https://github.com/docker-library/faq#an-images-source-chang...

jMyles 6 hours ago|||
Yeah, I was very surprised to wake up just now and find docker still vulnerable.
spenvo 5 hours ago|||
And now, at 2hrs 55mins past the PHP release, the amd64 image is available. Although it appears that the servers hosting the image are getting hugged to death because I can't actually download it.
yurishimo 4 hours ago||
Yepp, we're seeing the Debian images now for 8.4.27
adlpz 6 hours ago||
Out now!

https://hub.docker.com/_/php/tags

EDIT: 25min later, nope.

bowersbros 6 hours ago||
That's placeholders for images, you can't actually pull them yet.

https://hub.docker.com/layers/library/php/8.5.12-fpm/images/...

nuil 5 hours ago||
Any eta, when they will be available?
reddalo 4 hours ago|||
Now they should be actually available and pullable! The only problem is that it took 3 hours with a huge security problem already exploited in the wild.
nuil 1 hour ago||
Yep. That's a real issue. We took our applications offline until now.
tmstieff 5 hours ago||||
They are being backfilled now starting from the 8.0 images it looks like.
snlhuis087 5 hours ago|||
[dead]
basilgohar 7 hours ago||
This is obviously bad, but in my 20 years of hosting with PHP, I've never had to take the steps of taking down servers preemptively. It's not good, but honestly, and I think the way this was handled could leave a lot to be desired, I think this might be the "worst" we've had with PHP, and it took a while to get here.
danso 6 hours ago||
FWIW this is the most mainstream vulnerability in the new era where everyone has access to AI agents that have the potential capability to find and widely exploit the vulnerability far faster than the past timeframes for disclosure and patching.
dannyw 6 hours ago|||
I'm legitimately surprised half the hostnames on the internet isn't serving ClickFix or whatnot payloads already.

The average phpBB or Wordpress, even if it's behind cloudflare, probably has a direct IPv4 that's not disabled.

aDyslecticCrow 4 hours ago||||
Giving me log4j vibes.
Neikius 3 hours ago|||
Much worse. Log4j was hard to exploit and worked only in specific condions. And it was bad. This is something else.
aDyslecticCrow 1 hour ago||
But log4j was also extremely painful to patch, since every application bundled the vulnerabile dependency.

This is a storm, but hopefully quick to blow over with a panic frency of apt update or docker build.

The immediate exposure is faar worse here though, since its by design internet facing code.

A college enabled logging on their server as soon as they saw the news, and got dozens of attempted requests against index.php.

Lt_Riza_Hawkeye 2 hours ago|||
log4j was indeed the last time the internet storm center went to threat level yellow (as it is today again)
nicce 6 hours ago|||
I think some of the issues could have been avoided here, if they would not chase the PR and blog posts.
tokioyoyo 6 hours ago||
What's the "other way" that would be better in general?
Avamander 6 hours ago|||
The release should've been done sooner once it was clear the embargo was broken and people figured out the vulnerability.
nicce 5 hours ago||||
Some issues covered here: https://thephp.foundation/blog/2026/10/21/todays-php-securit...
pamcake 6 hours ago|||
More proactive outreach and better coordination with key downstreams.
segmondy 5 hours ago||
Thanks to OpenAI, everything is a PR stunt.
smusamashah 4 hours ago||
Someone is saying there is a new vulnerability that works on the newest 8.5.12 https://x.com/_annieversary/status/2112933589943742598
nr378 3 hours ago||
That partial stack trace linked above seems to match this GitHub issue, which has much more information: https://github.com/php/php-src/issues/24488 (double-free introduced in 8.5.12)

From what I can see, this causes a crash only, and isn't weaponisable. It's a use-after-free, but the reclaim window is zero by construction.

athrowaway3z 2 hours ago||
[dead]
rafael-lua 3 hours ago|||
Mr. President...
jijijijij 50 minutes ago||
... a second feline has hit the stack.
jerf 3 hours ago|||
Is there anywhere good to get some sort of reliable stream of information about this possibility?

It's going to be pretty bad if we all panic to get the latest PHP up, and all confidently roll out our updated websites, just for them to still be vulnerable to something serious anyhow.

sparklingmango 2 hours ago|||
This is why I like to have a minimum age requirement on package releases. Something like at least 2 or 3 days.
talon8635 8 minutes ago|||
lol this is the exact scenario where that’s an well idea. Maybe the patch is bad, but not patching for 2 days means your guarantees to be hit by the original issue

We are damned if we don’t and (often times) damned if we do

johng 4 hours ago||
Anymore on this, I'm upgrading to 8.5.12 now and don't want to still be vulnerable?
artursapek 3 hours ago||
[flagged]
pelcg 2 hours ago|||
Thank you very much.

This needs to be said, and this language cannot be saved.

johng 3 hours ago|||
Some web apps require it still. So that's not an option.
IshKebab 3 hours ago||
Kind of is though, now that vibe coding actually works and doesn't produce slop. At least if you have $1k or so to burn on Opus 5.5.

Just point Claude at your PHP and ask it to rewrite it in Rust. I know it seemed crazy when Bun did it (and it probably was), but it actually works now. (And please try it before you say "that's what people said 6 months ago" or whatever.)

johng 2 hours ago||
We use Xenforo, a commercial package. We'd have to rewrite it every time they released an update. That would be quite painful.
IshKebab 2 hours ago||
I don't quite follow. You'd replace it with an entirely vibe coded version. It looks like a standard phpbb style forum so that would be trivial for Opus 5.5.
alt227 1 hour ago||
How do you keep that vibe coded app up to date with all new discovered vulnerabilities, library dependency updates, and upstream OS changes?
cholmon 7 hours ago||
Ondrej might appreciate some monetary love on a day like today.

https://www.patreon.com/cw/oerdnj

aftergibson 7 hours ago||
Not even $700 a month? Seriously, there must be thousands of highly profitable companies depending on this guy’s maintenance. Once this is all sorted, please hassle your employers to give something back to him!
bombcar 7 hours ago|||
Someone tell Ondřej to sell some self-published "guide to PHP" for $200 and we can easily expense that.
sixhobbits 7 hours ago||
Yeah this, I always see so much hate towards businesses for finding tax loopholes or not donating etc but people forget that businesses are made of individuals with their own often conflicting subgoals, but overall has to try to maximize profit so they will never voluntarily pay more tax than legal minimum or be philanthropic if they do not have to or do not benefit explicitly.
l5870uoo9y 2 hours ago||||
Open source projects are severely undervalued.
mghackerlady 6 hours ago|||
While we're at it, please hassle employers to donate to OpenBSD so we don't get another heartbleed
basilgohar 6 hours ago|||
Thank you for calling this out. I absolutely rely on him so I decided to contribute $100/month even though I'm a solo dev with a business yet to see profit. But I absolutely rely on him for my server(s) PHP packages.
geerlingguy 6 hours ago|||
Similarly Remi for the RedHat-derivative side of things: https://blog.remirepo.net (he's on vacation, but apparently is pushing updates now).
sct202 6 hours ago|||
There is a one time option on his github as well for those who don't want to do subscriptions.
jijijijij 41 minutes ago|||
Speaking of, the PHP PPA was pretty unusable all day. I wonder, if this was just high demand or intentional attacks on launchpad servers to prolong the exploitation window.
jdhawk 4 hours ago||
Dude even backported the fix to his 5.6->8.0 branches

Newest: 5.6.40-104 which has the CVE fixes.

tux3 8 hours ago||
Advisories with the details are public:

https://github.com/php/php-src/security/advisories/GHSA-w8hw...

https://github.com/php/php-src/security/advisories/GHSA-6wmf...

simias 8 hours ago||
>PHP uses longjmp()

Well off to a good start here.

mort96 6 hours ago|||
It's not exactly uncommon, it's basically C's equivalent to exceptions. It lets you avoid having to do an extra error checking branch after every fallible operation and can quite significantly speed up the happy path of a language VM.
simias 6 hours ago|||
I know but I don't think the risks justify using this, as demonstrated here. "It's fine when it's used correctly" except it's so hard to use correctly. It completely messes up any analysis of codepaths because you have this "time travel" footgun that can bypass everything.

Exceptions aren't great for that either, but languages that feature them at least have the tooling and support features to make them work. C has no destructors or anything to handle exception unwinding cleanly. Scheme has call/cc, but scheme has a big runtime and garbage collector to deal with the fallout.

Let the branch predictor do its job and implement error checking properly, I say. If performance matters so much that you worry about pipeline flushes and icache thrashing, surely you wouldn't be using PHP anyway.

setjmp, longjmp and gets are 3 function I would absolutely ban in any C codebase I would be responsible for. Maybe strncpy too. and strtok. C is fun.

pinevale 4 hours ago||||
> It's not exactly uncommon, it's basically C's equivalent to exceptions.

longjmp is very uncommon, I don't recall seeing any high-quality C codebase using it, and if you want exceptions, you should pick a different language because longjmp doesn't really give you comparable semantics. It's basically saying "ok, computer, f--k my s--t up".

The fact that OOM conditions are an enduring source of exploitable vulnerabilities in PHP really should give everyone a pause. Like, that's not a thing in any sane project.

mjmas 17 minutes ago||
> I don't recall seeing any high-quality C codebase using it

Lua does. (though it does have the option to use C++ exceptions or MSVC stack unwinding instead)

wat10000 4 hours ago|||
It's C's equivalent to exceptions, except without any of the stuff that might actually make exceptions safe and reasonable to use in other languages.

There's no automatic cleanup of anything, no built-in way to even register things for manual cleanup, and it doesn't even consistently save/restore the values of your local variables. A local variable that was mutated between the setjmp and longjmp may end up with the old value or the new value depending on where the compiler decided to store it. The documentation does mention this and says that you need to use the volatile keyword to avoid it, but in typical C fashion there's nothing to enforce this, it's just up to the programmer to remember it.

It is extremely uncommon in C codebases because it is extremely dangerous. It makes hazards like pointer arithmetic and manually-terminated strings look like a walk in the park by comparison.

wren6991 3 hours ago||||
Not that uncommon for a language interpreter? Pretty sure MicroPython does some setjmp/longjmp for non-local returns.
the_mitsuhiko 6 hours ago|||
Never use Ruby then.
godd2 2 hours ago|||
Ruby even uses goto!
tuveson 6 hours ago|||
Lua as well
fock 7 hours ago||
did I skim this correctly that with the mitigation shared this does not (yet) impact fpm-usage and classic CGI (vs. mod_php) is not impacted either?
Maxious 7 hours ago|||
No, every platform affected.

> Who is at risk: all PHP installations serving web requests, including PHP-FPM, Apache with mod_php, php-cgi, FrankenPHP and LiteSpeed.

https://www.php.net/archive/2026.php#2026-10-21-5

CodesInChaos 6 hours ago||
I'm surprised by CGI. The vulnerability description talks about a second request being affected by corrupted state from an earlier request. But I thought CGI only processes one request per process?
bombcar 5 hours ago||
Iirc one of the main performance tricks for CGI was to get processes to stay alive.

But there were two vulns - only the second required the two requests.

DDerTyp 7 hours ago|||
[dead]
sjs382 5 hours ago||
Despite this coordination, WP-Engine (who's major business is hosting WordPress sites) is still on PHP 8.4.26 a full 2.5 hours after the patch is publicly available.

https://wpenginestatus.com/incidents/969801

dizhn 5 hours ago|
Could be backported?
throwaway82931 11 minutes ago||
I'm checking by ssh'ing into my environment, and this is what I see as of 21:41 UTC, several hours after the patches were published:

    wpe-user@MYENVIRONMENT.ssh.wpengine.net:~$ php -v
    PHP 8.4.26 (cli) (built: Sep 23 2026 06:24:29) (NTS)
    Copyright (c) The PHP Group
    Built by Perforce Zend (www.zend.com)
    Zend Engine v4.4.26, Copyright (c) Zend Technologies
        with Zend OPcache v8.4.26, Copyright (c), by Zend Technologies
I keep hoping for either a change in the version or the build date, but nothing yet. The incident status page says they're deploying, but there haven't been further updates about how far along they are.
ytxm 8 hours ago|
Click the associated tag:

> This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Glorious. Today of all days it would genuinely give me pause for caution.

edit: yeah, really not feeling that: https://github.com/php/php-src/compare/php-8.2.34..php-8.2.3...

Hopefully just a mistake? But looks like a botched release at the least

OJFord 7 hours ago||
Same on the older few. I'm not sure I understand it though, seems strange you can have a tag for a commit that's only present in a fork?

Is it perhaps a bit misleading, and only means that there's no branch containing that commit?

moritzwarhier 3 hours ago|||
Git doesn't have a concept of "fork".

GitHub uses this metaphor, and, as another commenter already aptly described, it could be nothing more than a fancy name for namespaced branches, on the server side.

On the client side, "forks" are usually different repository clones with different remotes and a "coincidentally" shared history.

But you can also map forked repos to multiple remotes of the same repository for example, instead of folders.

Assuming that forks would live in separate clones/blobs on the server is not really based on anything, so I think the warning is a good middle ground between explaining what forks are and how they handle them, and giving actionable advice.

It's also better suited for PR:

"Fork me on GitHub"

vs

"Branch and push your own clone on GitHub, using our shared blob optimizations".

I think the warning is clear and there's nothing misleading about it, but others have already pointed this out and git can be tricky.

It's so good at providing the right level of abstraction to everyone though, it seems!

Similarly, GitHub invented the term "Pull Request" (aka PR, lol).

Not a git-owned term.

But "merge request" isn't a Git primitive either!

And, with Forks and Pull Requesrs, GitHub made a particular workflow in Git approachable to anyone!

I love GitLab, but people get confused by Merges, myself included, so the GH-enabled workflow of favoring ff-only merges, without merge commits, with quadi-linear history, became the norm and helped Git succceed!

But I also appreciate being able to do all kinds of different workflows.

So PRs were positive-sum PR at the time, I'd say. When they became popular, I was still taught Subversion and CVS at uni, alongside Git as "the new thing". Ar that time, many people considered the older systems simpler, and pondered SVN as the most reasonable middle ground between CVS and the decentralized concept of Git!

CodesInChaos 6 hours ago||||
There is little difference between a tag and a branch in git. There is just the convention that tags reference the same commit forever, while branches move.

On github forks are part of the same physical repository. You could imagine that each logical repository is just a namespace for branches and tags, backed by the same physical repository.

I do consider the warning a bug if github, it should check both tags and branches for commits which are to be considered part of a logical repository.

cyberclimb 7 hours ago||||
It can mean either, it's a consequence of how github optimized their backend storage so a 100 forks of a repo initially take up the same space as 0 forks
drdec 7 hours ago|||
main (or master) is just another branch to git.
OJFord 4 hours ago||
Correct. ..did you mean to reply elsewhere perhaps?
drdec 46 minutes ago||
Yes sorry, missed the reply link
fixkitai 7 hours ago||
[flagged]
More comments...