Remix.run Logo
▲ PHP 8.2.35(github.com)
628 points by tuyuri 3 hours ago | 231 comments
▲nr378 3 hours ago | parent | next [-]

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 2 hours ago | parent | next [-]

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 2 hours ago | parent | next [-]

>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 2 hours ago | parent | next [-]

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 2 hours ago | parent | next [-]

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 2 hours ago | parent [-]

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 an hour ago | parent | next [-]

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 an hour ago | parent | prev [-]

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.

▲john_strinlai 2 hours ago | parent | prev [-]

>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 2 hours ago | parent [-]

and they also have plenty of exposure to their motherships burning money on LLMs

▲charcircuit 2 hours ago | parent | prev [-]

Why does the PHP security team need to acknowledge it and develop the fix? It's open source software.

▲lokar 2 hours ago | parent | next [-]

If you want an orderly fast global rollout you need to have the maintenance team and distributors working together.

▲weird-eye-issue 2 hours ago | parent | prev | next [-]

So anybody can just push out a new release of PHP?

▲charcircuit 5 minutes ago | parent | next [-]

Yes, someone could have published a safe version for people to use for the 2 months to get the actual fix done.

▲swiftcoder 2 hours ago | parent | prev [-]

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.

▲0x457 an hour ago | parent [-]

Did start writing software this week?

▲justinhj 2 hours ago | parent | prev | next [-]

What would you have a security team for then?

▲wat10000 2 hours ago | parent | prev [-]

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 an hour ago | parent [-]

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

▲dspillett 2 hours ago | parent | prev | next [-]

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 2 hours ago | parent [-]

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.

▲vikramkr 42 minutes ago | parent | prev | next [-]

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

▲dannyw 2 hours ago | parent | prev | next [-]

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 an hour ago | parent [-]

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.

▲Avamander an hour ago | parent | prev | next [-]

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.

▲stingraycharles an hour ago | parent | prev | next [-]

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

▲beberlei an hour ago | parent | prev | next [-]

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

▲Capricorn2481 18 minutes ago | parent | prev [-]

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

▲chinathrow 2 hours ago | parent | prev | next [-]

> 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 2 hours ago | parent | next [-]

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 2 hours ago | parent | next [-]

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 2 hours ago | parent | prev [-]

The somewhere was a loser on this very website https://daubois.dev/blog/cve-2026-109618-php2shell-rumors/

▲novafacing 2 hours ago | parent [-]

This post reads like pure slop to me

▲janmo 2 hours ago | parent | prev | next [-]

They haven't even been able to release the patch on time. Ubuntu still hasn't it

▲dspillett 2 hours ago | parent | next [-]

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 2 hours ago | parent [-]

Sury is up for all versions too

▲rob 2 hours ago | parent | prev | next [-]

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 2 hours ago | parent | next [-]

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 39 minutes ago | parent [-]

Patches have now landed for 20.04 and other earlier Ubuntu versions. https://ubuntu.com/security/CVE-2026-109618#status

▲kijin 2 hours ago | parent | prev [-]

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.

▲hdgvhicv 2 hours ago | parent | prev | next [-]

I had an email from usn recently

▲unethical_ban an hour ago | parent | prev [-]

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 an hour ago | parent [-]

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 an hour ago | parent [-]

You're correct, I was looking for the upstream patch number.

▲nicce 2 hours ago | parent | prev | next [-]

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 2 hours ago | parent [-]

Of course it's useful, but you can't absolutely not leak something as big as this.

▲anon1642 2 hours ago | parent | prev [-]

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 2 hours ago | parent | prev | next [-]

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 2 hours ago | parent [-]

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 2 hours ago | parent | next [-]

Lol wait so OpenAI's LLM to discover this vulnerability most likely just looked it up in an old forum post?

▲pixl97 2 hours ago | parent | next [-]

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 2 hours ago | parent | prev | next [-]

It's only one piece in the full exploit chain.

▲charcircuit 2 hours ago | parent | prev [-]

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.

▲gcr an hour ago | parent | prev | next [-]

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 2 hours ago | parent | prev | next [-]

No way to prevent this, says only language where this regularly happens

▲phplovesong 2 hours ago | parent | prev [-]

LOL

PHP will always be the slop before AI.

▲WJW an hour ago | parent | prev | next [-]

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?

▲darkwater 3 hours ago | parent | prev | next [-]

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 2 hours ago | parent | next [-]

Well, WP is just a program written in PHP.

▲dspillett 2 hours ago | parent | next [-]

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 2 hours ago | parent [-]

Well, it would help if WP were actually controlled by one entity, but currently it's dominated by factions and infighting.

▲dspillett 2 hours ago | parent [-]

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 2 hours ago | parent | prev [-]

They have hosted instances as well though. Not sure their market share though.

▲bombcar 2 hours ago | parent | prev | next [-]

Because the CEO of Wordpress has gone insane, basically.

▲nicce 2 hours ago | parent [-]

Automattic is on the list, tho.

▲12837615 2 hours ago | parent | prev | next [-]

WordPress is down right now. A bit late for patching though ...

▲LoganDark 2 hours ago | parent | prev [-]

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

▲pluc 2 hours ago | parent | prev | next [-]

Wiz Khalif AI

▲alper an hour ago | parent | prev | next [-]

Do they consider this an example of a "good" response?

▲anon83748359 an hour ago | parent [-]

It’s in-line with the rest of the pho eco system.

▲consp 2 hours ago | parent | prev | next [-]

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

▲wildmXranat 2 hours ago | parent | prev | next [-]

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

▲Pxtl 2 hours ago | parent | prev [-]

Thank you, Wiz Khalifa.

▲sjs382 4 minutes ago | parent | prev | next [-]

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

▲OscarCunningham an hour ago | parent | prev | next [-]

Looks like there might be a second vulnerability: https://fedi.katze.sh/@elise/117479383739450605

▲dannyw 10 minutes ago | parent | next [-]

The patches are very dirty (thousands of `if (ZEND_HAS_OOM()) { .. return failure`); my first reaction is they've probably missed something.

▲Maxion 43 minutes ago | parent | prev [-]

Meow!

▲spenvo 2 hours ago | parent | prev | next [-]

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 an hour ago | parent | next [-]

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 an hour ago | parent | next [-]

Ugh these comments on GitHub. Don't people know when it's best to just post nothing? "516 hidden items"

▲teekert 41 minutes ago | parent [-]

Have you ever experienced a "Reply-all storm"?

▲maaarghk an hour ago | parent | prev [-]

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?

▲Fabricio20 an hour ago | parent | prev | next [-]

As far as I can tell the process is really long, and with a vuln this big with advance notice it's insane they didnt have someone at the ready. It's been two hours since the expected release time!

As far as I can tell the repository that triggers the actual push to docker hub is on https://github.com/docker-library/meta and it runs on an hourly cron, which got missed by the merge by 8 minutes. Hopefully someone triggers it by hand instead of us waiting another hour at minimum, if this is even the last step.

▲adlpz an hour ago | parent | prev | next [-]

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?

▲asimovDev an hour ago | parent | prev | next [-]

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 2 hours ago | parent | prev | next [-]

Yeah, I was very surprised to wake up just now and find docker still vulnerable.

▲adlpz an hour ago | parent | prev [-]

Out now!

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

EDIT: 25min later, nope.

▲bowersbros 42 minutes ago | parent [-]

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 25 minutes ago | parent [-]

Any eta, when they will be available?

▲basilgohar 2 hours ago | parent | prev | next [-]

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 2 hours ago | parent | next [-]

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 an hour ago | parent | next [-]

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.

▲nicce an hour ago | parent | prev [-]

I think some of the issues could have been avoided here, if they would not chase the PR and blog posts.

▲tokioyoyo an hour ago | parent [-]

What's the "other way" that would be better in general?

▲nicce 22 minutes ago | parent | next [-]

Some issues covered here: https://thephp.foundation/blog/2026/10/21/todays-php-securit...

▲Avamander an hour ago | parent | prev | next [-]

The release should've been done sooner once it was clear the embargo was broken and people figured out the vulnerability.

▲pamcake 44 minutes ago | parent | prev [-]

More proactive outreach and better coordination with key downstreams.

▲segmondy 37 minutes ago | parent | prev [-]

Thanks to OpenAI, everything is a PR stunt.

▲tux3 3 hours ago | parent | prev | next [-]

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 3 hours ago | parent | next [-]

>PHP uses longjmp()

Well off to a good start here.

▲mort96 an hour ago | parent | next [-]

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 an hour ago | parent [-]

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.

▲the_mitsuhiko an hour ago | parent | prev [-]

Never use Ruby then.

▲tuveson an hour ago | parent [-]

Lua as well

▲fock 3 hours ago | parent | prev [-]

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 2 hours ago | parent [-]

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 an hour ago | parent [-]

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?

▲ytxm 3 hours ago | parent | prev | next [-]

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 3 hours ago | parent [-]

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?

▲CodesInChaos an hour ago | parent | next [-]

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 2 hours ago | parent | prev | next [-]

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 2 hours ago | parent | prev [-]

main (or master) is just another branch to git.

▲cholmon 2 hours ago | parent | prev | next [-]

Ondrej might appreciate some monetary love on a day like today.

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

▲aftergibson 2 hours ago | parent | next [-]

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 2 hours ago | parent | next [-]

Someone tell Ondřej to sell some self-published "guide to PHP" for $200 and we can easily expense that.

▲sixhobbits 2 hours ago | parent [-]

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.

▲mghackerlady an hour ago | parent | prev [-]

While we're at it, please hassle employers to donate to OpenBSD so we don't get another heartbleed

▲basilgohar an hour ago | parent | prev | next [-]

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 an hour ago | parent | prev | next [-]

Similarly Remi for the RedHat-derivative side of things: https://blog.remirepo.net (he's on vacation, but apparently is pushing updates now).

▲sct202 2 hours ago | parent | prev [-]

There is a one time option on his github as well for those who don't want to do subscriptions.

▲bartnp an hour ago | parent | prev | next [-]

If LLM's are going to keep finding vulnerabilities of this magnitude, we'll be sure to face a computer worm event of unprecedented scale soon. Best be ready for the moment the lights turn off

▲londons_explore 23 minutes ago | parent | prev | next [-]

I was under the impression that this sort of bug is fairly common in both php and common php frameworks?

I thought the real lesson was "assume your web server is compromised if you use php, and try to make sure php doesn't touch anything too critical"

▲arm32 6 minutes ago | parent [-]

Yes, there have been decades of talk about this already—ensuring you isolate/jail the PHP-related processes and run them with an unprivileged user, etc.

▲k1kingy 3 hours ago | parent | prev | next [-]

Does anyone know how long it takes for the ondrej/php repo to be patched usually?

▲00deadbeef 3 hours ago | parent | next [-]

I installed the updates 18 minutes ago, they're live.

▲gregoriol 2 hours ago | parent [-]

Definitely not available yet, launchpad says last builds are from 2026-10-12

▲leoprctmp 2 hours ago | parent [-]

use packages.sury.org instead

follow https://packages.sury.org/php/README.txt

▲gregoriol 6 minutes ago | parent [-]

Sury's own website and launchpad description are really misleading as to what to use, thanks for pointing to it

▲longwave 3 hours ago | parent | prev [-]

Ondrej has already said "deb.sury.org will carry packages as they are built".

https://codeberg.org/oerdnj/deb.sury.org/issues/145#issuecom...

▲dstu 2 hours ago | parent [-]

You can see them building here, it looks like most should be ready within the next few minutes:

https://launchpad.net/~ondrej/+archive/ubuntu/php/+builds?bu...

▲dstu 3 hours ago | parent | prev | next [-]

So far Ubuntu LTS isn’t picking up the new packages for me via apt update, and Laravel Forge appears completely unresponsive as a result of being flooded by people trying to update their servers.

▲trollbridge 2 hours ago | parent | next [-]

And I'm maintaining a box on 18.04 over here, and lo and behold its Pro subscription isn't showing up as active, so I couldn't get the update even if they do release it.

Going to migrate the box to Debian in-place. (Or Gentoo, the way things are currently going.)

▲Neil44 2 hours ago | parent | prev | next [-]

Same, I'm spamming the apt update and so far nothing on 22.04 or 24.04 lts

I realised that my linode and ovh vm's point at local mirrors not direct to ubuntu, I guess that's why the delay

▲janmo 2 hours ago | parent | prev [-]

They had plenty of time to prepare for the release, what a shit show

▲Xyrren 2 hours ago | parent | prev | next [-]

https://ubuntu.com/security/CVE-2026-109618#status fixes have been back ported in Ubuntu LTS versions just now.

▲cpncrunch 2 hours ago | parent [-]

Some have, but others are still showing "needs evaluation", and still no update for 20.04. I've just turned off php for now, as we only used it in a couple of places and won't be missed for a day or two.

▲cpncrunch 39 minutes ago | parent [-]

Patches have now landed for 20.04 and other earlier Ubuntu versions.

▲holnp an hour ago | parent | prev | next [-]

We built a non-exploit checker for publicly visible PHP risk signals: https://www.lunover.com/php2shell-checker/

▲bstsb 3 hours ago | parent | prev | next [-]

i just took down all my PHP sites for the last few hours. they’re proxied behind Cloudflare so i know there were mitigations, but infrastructure can’t be breached if it isn’t running!

▲bombcar 2 hours ago | parent [-]

Now I need to get the cute name for a vm vulnerability that attacks offline servers ...

awake2death or something

▲bowersbros an hour ago | parent | prev | next [-]

Looks like the docker images are struggling in the Jenkins queue: https://doi-janky.infosiftr.net/

▲petecooper 3 hours ago | parent | prev | next [-]

>Given the severity of these vulnerabilities, the PHP security team provided minimal source-backports for PHP 7.4, PHP 8.0, and PHP 8.1 to help people building from source or without access to an LTS vendor.

▲ckbkr10 2 hours ago | parent | prev | next [-]

Sury released backports for older versions, as always hes incredibly reliable.

▲Amsozzer 3 hours ago | parent | prev | next [-]

Since I have to go through a bunch of php repos today at work I ended up releasing a CLI tool that automates that process by listing out the steps you need to take to stay away from the vulnerability. Here's the link incase it helps anyone https://github.com/Amsozzer1/php2shell-repo-audit

▲trollbridge 2 hours ago | parent [-]

Dude, today of all days is not when I'm going to trust some random CLI tool that was vibed out. I'm not saying your work isn't helpful, but it would probably be a lot better to just release your prompts you used to build this and let others build it on their own.

▲Trufa 2 hours ago | parent | next [-]

I really like the idea of sharing details prompts/specs.

It feels like many times PRs could just be that.

▲Amsozzer 2 hours ago | parent | prev [-]

makes sense, will release the docs. thanks!

▲rob 2 hours ago | parent [-]

I wouldn't listen to him. This is very helpful to people that might be managing dozens or hundreds of servers and need a way to quickly figure out things. It's literally open source and we can point our agent to it and have it examine the source code for anything that looks suspicious first. No need to sit here for a couple hours trying to go back and forth and create something that you already took the time to do. Thanks for the work!

▲aurareturn 22 minutes ago | parent | prev | next [-]

And there were people who thought Project Glasswing was a stunt.

▲butler14 44 minutes ago | parent | prev | next [-]

I’m not especially technical, but I have clients with WordPress websites. Can anyone perhaps put in a sentence or two what I need to suggest they do?

▲schleck8 31 minutes ago | parent | next [-]

Tell them to take anything with PHP offline, so that it isn't available from the public internet. That is how Netcup and Contabo are handling Wordpress hosting until they've upgraded all affected packages.

There are already functional exploit scripts on GitHub, you can target any Wordpress site right now.

▲qwm 28 minutes ago | parent | prev | next [-]

Shut the sites down until you are able to update to the latest PHP patch for your version.

▲smurf9852 29 minutes ago | parent | prev [-]

You need to update the PHP version, which is usually done by the hosting provider.

▲butler14 25 minutes ago | parent [-]

Just a note to say thank you to all of the above commenters, appreciated

▲theturtletalks 2 hours ago | parent | prev | next [-]

If open source has these vulnerabilities, imagine proprietary ones.

▲tuyuri 3 hours ago | parent | prev | next [-]

Versions: 8.2.35 8.3.36 8.4.27 8.5.12

Now are available in the php-src github

▲technoknol 3 hours ago | parent [-]

can't find it.

▲petecooper 3 hours ago | parent [-]

Check the tags:

https://github.com/php/php-src/tags

▲tikotus an hour ago | parent | prev | next [-]

Has there yet been any signs of any service actually being successfully hacked due to the vulnerability?

▲redox99 an hour ago | parent | next [-]

I'd expect agents to be hacking hundreds of thousands of websites as we speak.

They'll of course install a backdoor and patch the exploit so others can't come in. They won't deface the website, so there won't be signs.

▲tovve an hour ago | parent | prev [-]

Watchtowr reports yes, but doesn't say where exactly right now: https://watchtowr.com/intelligence/php-cve-2026-109618-faq/#...

▲decidu0us9034 42 minutes ago | parent [-]

Well they did specify "successfully." EITW is a pretty broad tag, just means attacker are probing servers. I'm not saying it's good but there are usually some pretty big caveats with remote-remote memory corruption, don't know if all the people dooming are aware of that

> Exploit portability and reliability depend on the PHP build, extensions, frontend behavior and allocator layout.

▲alper an hour ago | parent | prev | next [-]

They have to backport this fix or else leave a large part of the internet broken.

▲lexoj an hour ago | parent | prev | next [-]

While the fix was not published I genuinely thought a quick service rewrite to some other stack (say Go) would make sense as a fix. (Assuming high integration test coverage )

▲ljm an hour ago | parent | prev | next [-]

So this only affects 8.2 are other patches coming?

▲philipwhiuk an hour ago | parent [-]

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

> PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35 fix two critical vulnerabilities that can allow unauthenticated remote code execution. All PHP users are strongly encouraged to update immediately.

Earlier versions are not fixed by PHP official and need vendor patching where available

▲ljm an hour ago | parent [-]

exactly why I asked, because those builds for 8.5.12 are not available yet

▲techteach00 32 minutes ago | parent | prev | next [-]

Is this why Wikipedia isn't working?

▲vaylian 21 minutes ago | parent [-]

en.wikipedia.org works for me

▲nairboon 2 hours ago | parent | prev | next [-]

Why is the official source (php.net) marked as [dupe] https://news.ycombinator.com/item?id=50180943

and not the github mirror?

▲abbbi 3 hours ago | parent | prev | next [-]

debian trixie just rolled updates.

▲Instantnoodl 3 hours ago | parent | next [-]

Can confirm. Just updated to fixed version

▲Pxtl 2 hours ago | parent | prev | next [-]

Debian always seems to be the grown-ups. I'm a Linux novice so I couldn't get Nvidia drivers working on it but that's the only reason it's not running on my desktops.

▲technoknol 3 hours ago | parent | prev [-]

when's bookwarm coming?

▲abbbi 2 hours ago | parent | next [-]

packages are building:

https://buildd.debian.org/status/package.php?p=php8.2&suite=...

▲kps 2 hours ago | parent | prev [-]

Already, including backports to 7 and 5.

▲dmtroyer 3 hours ago | parent | prev | next [-]

Have we ever seen the "get ready for a security release tomorrow" email before?

https://www.php.net/archive/2026.php#2026-10-20-1

▲bombcar 2 hours ago | parent [-]

Many vendors do it, but on a set schedule "patch Tuesday" and some will release vague "mitigation steps" but honestly those usually come with the patch.

▲joenada 21 minutes ago | parent | prev | next [-]

Log4J4PHP

▲mahboi an hour ago | parent | prev | next [-]

Seems like 4chan is down for maintenance as a result.

▲charcircuit 3 hours ago | parent | prev | next [-]

https://github.com/php/php-src/commit/01a40e89fbfc499936e3b0...

What everyone is looking for.

▲Good4boothee an hour ago | parent | next [-]

Really makes me appreciate using language with exceptions and not that crazy "manually check if error handling is required - and do it everywhere". The fix adds:

    if (ZEND_HAS_OOM()) {
        goto oom_nodeset;
    }
all over the codebase.
▲dannyw 38 minutes ago | parent | prev | next [-]

Gosh. Let's hope they didn't miss a place.

▲CodeCompost 3 hours ago | parent | prev [-]

It says "3 days ago". The tag is 2 days old.

I assume it just got pushed?

▲invokestatic 3 hours ago | parent [-]

Yeah… it was patched in the source 3 days ago. Check the linked GHSA.

▲iamcreasy 2 hours ago | parent | prev | next [-]

Does anybody know when Amazon Linux 2023 will get this release?

▲alidl 2 hours ago | parent [-]

Thread here: https://github.com/amazonlinux/amazon-linux-2023/issues/1148

▲torbengee 2 hours ago | parent | prev | next [-]

Looks like the upgrade instructions for PHP 8.3 for Fedora 39 and earlier are not working ... yikes.

▲iLoveOncall 27 minutes ago | parent | prev | next [-]

Sucks to be you if you're not on PHP 8 :|

▲deanc an hour ago | parent | prev | next [-]

I think there's a lot to learn from the last twenty four hour's events. An absolute nuclear bomb of an exploit affecting every version of PHP back to 2012 (which nobody should be using of course, but I've worked in plenty of environments that are not up to date).

The thing that's annoyed me the most is the speculation and misinformation, filling in the gaps. Folks looked into the php-src and figured out one of the vulnerabilities, starting saying you should disable certain php settings and then core PHP developers on obscure mailing lists hinting this isn't enough.

Given how inexpensive it is for agents to scan popular OSS projects, disclosure needs to be more discrete and you cannot publish fixes to OSS before disclosure. People will be and are watching for this kind of thing already.

▲julian9499 2 hours ago | parent | prev | next [-]

Anyone know when amazon linux 2023 is releasing updates?

▲f311a 2 hours ago | parent | prev | next [-]

This reminds me of the old days when PHP was such a vulnerable language.

By simply searching for websites that used local includes to load other pages, you could get RCE.

At this point, running webapps in JS workers/sandboxes sounds like a good idea. Vendors take care of patching.

▲dannyw 2 hours ago | parent [-]

Have a search for V8 RCE/CVEs over the past year.

▲f311a an hour ago | parent [-]

That's why I mentioned vendors. They patch it before announcements.

Also, sandboxing makes automatic exploitation harder. There is no FS persistence, so some checks simply do not pass.

▲DonHopkins 2 hours ago | parent | prev | next [-]

Time to restart Apache again!

"I'm not a real programmer. I throw together things until it works then I move on. The real programmers will say 'Yeah it works but you're leaking memory everywhere. Perhaps we should fix that.' I’ll just restart Apache every 10 requests." -Rasmus Lerdorf

▲bombcar 2 hours ago | parent [-]

Amusingly enough restarting php after each request seems to block the issue

▲SoftTalker an hour ago | parent [-]

If true then classic CGI mode should not be vulnerable, but apparently it is.

▲cowlevel 3 hours ago | parent | prev | next [-]

So they've added malloc fail checks and tests for malloc fail throughout.

Is this even reachable on Linux due to overcommit? Maybe by attempting a single extremely large allocation?

▲antiloper 2 hours ago | parent [-]

PHP is tracking its own memory usage internally with limits configurable via php.ini.

▲Capricorn2481 19 minutes ago | parent | prev | next [-]

This is extremely damning for Cloudflare. I had a bunch of clients telling me Cloudflare is all they need to prevent this, and they want to get that on their site instead of upgrading PHP.

I have not seen confirmation Cloudflare is doing anything except playing whack a mole with certain request patterns. PHP Core Devs have been clear you need to upgrade. If this is true, it's disgustingly opportunistic that Cloudflare is using this critical security time to lie to people that they are safe.

Anyone from Cloudflare want to speak to this?

▲cr3ative 14 minutes ago | parent | next [-]

I'm not from Cloudflare, or particularly a fan of theirs, but they are doing a few things about this, including a new WAF capability: https://blog.cloudflare.com/full-transaction-waf/ and automatic protection for all customers https://blog.cloudflare.com/php-vulnerabilities-waf-protecti...

These were rolled out before the exploit became public.

I would wouldn't describe that as damning.

▲Capricorn2481 a few seconds ago | parent [-]

It's great they are doing mitigations, but they admit themselves, in fine print, that this will not protect you from the vulnerability

Why is word circulating that you can just sign up for Cloudflare and be 100% protected from this? They are burying the leed and trying to get new customers, and it's working.

▲traeregan 8 minutes ago | parent | prev [-]

https://blog.cloudflare.com/php-vulnerabilities-waf-protecti...

▲varispeed an hour ago | parent | prev | next [-]

Why they can't publish an expoit so people can run it against their own servers to check the impact?

▲holnp an hour ago | parent | prev | next [-]

k

▲jdw64 2 hours ago | parent | prev | next [-]

What I've been feeling lately is that security vulnerabilities will inevitably keep being discovered, and I worry whether humans can ever patch all of them.

▲phplovesong 2 hours ago | parent | prev | next [-]

This is pure gold. A critical vuln like this is such classic lolphp. Luckily you can port away from PHP pretty easily with AI.

▲bombcar 3 hours ago | parent | prev | next [-]

What I did on our WordPress boxes while waiting for distro packages (CVE-2026-109618 / CVE-2026-109619)

1. session.upload_progress.enabled = Off, in php.ini and as php_admin_flag in every FPM pool, so per-directory config can't turn it back on. It's one of the two confirmed consumers in GHSA-6wmf, and the validated FPM path depends on it. Almost nobody uses it, and the advisory suggests leaving it off even after patching.

2. Refuse multipart request bodies at the web server, before PHP parses them. All of the GHSA-w8hw out-of-memory strategies go through multipart parsing. On Apache it's a rewrite rule matching a Content-Type of multipart/form-data that returns 403. On Caddy it's a header matcher that responds 403. The cost: every browser upload breaks (media library, plugin zips, importers). Check your public forms first.

3. Check your SAPI. Both bugs have confirmed RCE against mod_php. FPM is narrower: the validated path needs upload_progress, and the early INI consumer only applies if your front end sends PHP_VALUE/PHP_ADMIN_VALUE. To check, grep your Apache, nginx and Caddy configs for it, and run apache2ctl -M | grep php.

4. pm.max_requests = 1 in the pools. A worker serves one request and exits, which breaks the stale-state chain: the "producer" and "consumer" requests must land on the same worker. It costs a fork per request.

5. Lower max_input_nesting_level and post_max_size, per the advisory.

6. Housekeeping that should already be done: no .php served from uploads directories, and remove any stray phpinfo.php. Scanners request it constantly, and it tells an attacker your exact build.

▲dwedge 3 hours ago | parent [-]

This is just Claude output. Did you verify anything or just rehash the links?

▲mistertrotsky 2 hours ago | parent | next [-]

HN should ban comments that are just Claude output

▲throawayonthe 2 hours ago | parent | next [-]

https://news.ycombinator.com/newsguidelines.html#:~:text=Don...

▲whycome 2 hours ago | parent | prev [-]

I’d rather just some sort of tag. Because sometimes it can be useful. This is a case where the community here can scrutinize the output and actually pull out useful data or steps or even starting points when information is coming in so fast for a developing story/issue

▲bombcar 2 hours ago | parent [-]

The (pretty obviously Claude'd) responses with actual steps you could take to mitigate were 1000% more useful to me than the "SHUT EVERYTHING DOWN WE'RE GONNA DIE" and the "stop posting AI slop" posts were, that's for sure.

▲dwedge 2 hours ago | parent [-]

It was your response. Of course you prefer your response.

The fact is you had no idea how useful or dangerous your advice was. PHP maintainers said to shut it down, how many people followed your advice instead? Did it work or just leave them vulnerable? Do you know?

Because you're heavily implying that the people who knew about the details of the vulnerability were panicking and thank god we had you with an LLM

▲bombcar 2 hours ago | parent | prev | next [-]

It's just Claude output of what I've done; the other URL has the basics.

▲DonHopkins 2 hours ago | parent | prev [-]

Why don't you do something useful and rewrite it so it's not claude output any more, but says the same thing in a way that you're satisfied with?

Then your own comment would not be such low effort and useless human slop.

Do you agree or disagree with the comment's claims? Did YOU verify anything? Let's all hear you fact check and proofread and reword what it said so it matches your standards, instead of just listening to you bitch and complain without offering any useful information.

Or do you not actually know anything about PHP administration, programming, and security, so you're only capable of information-free drive-by anti-ai posts, without any other useful content or corrections?

Ball's in your court.

▲magar_fos 3 hours ago | parent | prev | next [-]

C'mon Ondřej..

▲lousken 2 hours ago | parent [-]

it's out?

▲rvz 2 hours ago | parent | prev | next [-]

PHP is done.

▲rkozik1989 2 hours ago | parent | next [-]

People have been saying this for the past 16 years, but the reality is once a system is in production over time it becomes increasingly risky to replace it. Because over the life of a piece of software you make tons of small fixes, resolve bugs, adding customer-specific functionality, etc. that you'd completely overlook when planning our requirements for a rewrite. Which is a big problem when other systems are dependent on the software operating a specific way i.e. APIs, web services, and so forth. Not to mention the economics of a rewrite also has to make sense. Nobody is going to spend 2-3 years recreating what they already had and get no additional functionality out of it. Certain software basically has to get so bad that literally anything replacing it is better than what came before for replacing it to be the right approach.

▲hn_submit an hour ago | parent [-]

People shouldn't be using PHP. I was shocked some security focused websites are even using it. I just hope there's nothing of value on their servers and that it's not connected to their internal network in any way. In my experience this is almost always the case because it makes maintenance and development easier but effectively exposes your entire organization to the internet.

That 70% of the internet still uses it is shocking to me. These organizations deserve to get burned badly. Let this incident be a warning to all of them!

▲antiloper 2 hours ago | parent | prev | next [-]

Just how debian was done after weak keys, OpenSSL was done after heartbleed, or Windows was done after (rolls dice) the print spooler RCE

▲AznHisoka 2 hours ago | parent [-]

And how Crowdstrike was done after their fiasco 2 years ago...

▲chimeracoder 17 minutes ago | parent [-]

And Lenovo was done after Superfish

▲SoftTalker an hour ago | parent | prev | next [-]

Not at all. People will patch and carry on.

▲myko 2 hours ago | parent | prev [-]

always was

▲mrits 2 hours ago | parent [-]

always will be

▲bitbasher 2 hours ago | parent | prev [-]

So-- if PHP's sourcecode was unavailable (closed source), would this ever have been found? Probably not. Maybe it is safer to be closed source.

▲kstrauser an hour ago | parent [-]

Know how recompilers are porting video games from one platform to another these days? That exact trick works just as well for finding vulnerabilities. Broadly.

1. Hey LLM, turn this binary into source code.

2. Hey LLM, see any glaring security issues with this source code?

▲bitbasher an hour ago | parent [-]

You can only do that if you have access to the binary. Which, in a web service, you shouldn't be able to access!

▲kstrauser 31 minutes ago | parent [-]

But all the people deploying that binary to their webservers would have access to do that.