NHacker Next on Rails
  • top
  • new
  • best
  • ask
  • show
  • jobs
login
GuidelinesFAQListsAPISecurityLegalApply to YCContact

Hacker News on Rails, powered by React on Rails Pro. Open the source on GitHub by ShakaCode.

Commit 06fc0df

Rendered at 09:46:49 GMT+0000 (Coordinated Universal Time) with Rails + React on Rails RSC.

PHP session.upload_progress heap UAF (CVE-2026-109618 / -109619) (jackalsyn.com)

177 points by rfarley04 5h ago | 57 comments

lorenzbrun 4h ago
I'm pretty sure this is not the vulnerability that's still officially under embargo. I think I found the the two actual vulnerabilities (both UAFs and similar). I patched my own stuff (at least I hope so) and am mirroring traffic to a detector, very interested to see when I get the first hits. Unless I see actual exploit attempts or a full leak I think I'm not going to publish my patches yet.
idlewords 3h ago
I guess the future is people arguing in comments whether a high-severity vulnerability is the one under embargo, or one of various unrelated devastating bugs discovered when people got wind of the embargo and pointed their AI agents at the codebase.
SSLy 2h ago
the future is now, eh.
InvisibleUp 4h ago
This may be, according to one of the PHP devs, a completely unrelated exploit. See https://phpc.social/@Girgias/117476477429221001. Seems the best stopgap is SELinux or AppArmor.
charcircuit 3h ago
You misread. He is saying that the multipart UAF vulnerability part of the overall exploit can't be fixed by session.upload_progress.enabled = off or any other ini option for that matter.
4ndrewl 3h ago
Which is also what tfa says btw
iambateman 4h ago
I turned the server off on our app until this storm is over.
tosti 3h ago
Yeah, the circuit breaker is the best firewall!
lionkor 4h ago
Someone uses Claude to role play as a hacker... Yikes
80fj0348i 4h ago
Previously submitted with a much better source: https://news.ycombinator.com/item?id=50172041
tech234a 4h ago
This one claims to actually be an exploit. The other was an announcement from PHP without details.
lifeisloving 4h ago
How is this a better source, the current post is a PoC? This is just a warning...

You're not even reading the things you're saying are worse, and reccomending things that arent what you say they are (because you didnt read those either)

Mooty 3h ago
If you use Nginx, you can temporarly block the subject by disallowing multipart sendings to PHP. This is quite a problem for a lot of forms, but way better that being hacked.

Here is an Nginx patch : if ($http_content_type ~* "multipart") { return 403; }

You can also turn of session progress in php.ini as mentionned but that does not seem to cover every cases : session.upload_progress.enabled = Off

Mooty 3h ago
After digging a little in the PoC code (here https://jackalsyn.com/posts/php-up-2026.html) I'm quite confident it's not a completely working one.

It assumes PHP frees the upload progress data when it reloads the session. But PHP 8.4 (the one we use is 8.4.24, i don't know for other versions) calls Z_TRY_ADDREF(progress->data) to keep that data alive. The fake function call also seems to contain invalid fields.

This makes me question this particular PoC, not the official PHP security warning. I have not reproduced the exploit, so this is a concern based on reading the code, not proof that the real vulnerabilities cannot be exploited.

But anyway the CVE still exists, and the exploitation is tied to multipart, disabling it seems the best thing you can do now without shutting everything down.

ffritz 3h ago
Any idea if Cloudflare in front of an unpatched site would prevent this? They did 2 updates already today to their managed rulesets but are not specifying what.

https://developers.cloudflare.com/waf/change-log/changelog/

AdamTReineke 3h ago
https://x.com/dok2001/status/2112702593705312467

"We got you covered" - Dane Knecht (Cloudflare CTO)

eurleif 2h ago
Now deleted, and replaced with: https://x.com/dok2001/status/2112802620029223193

"Cloudflare has protections in place for known exploit payloads. There will be more variations to come and the only way to fully protect your site is to update php once released."

mopsi 3h ago
A little too vague for my comfort.
indigodaddy 2h ago
CF in front can mess about with L7?
minitech 2h ago
Yes? How did you think Cloudflare and other WAFs worked?
Hamuko 3h ago
I think putting my PHP site behind Cloudflare would be the least I would do if I wanted to keep it online before PHP can be patched. The other alternative is trying to block multi-part uploads before they reach PHP.
mklepaczewski 22m ago
Make sure to create CF tunnel to your server and to reject all traffic frin other sources, or to accept traffic only from known CF ips. Otherwise, you're still exposed, even if CF WAF works.
dataflow 3h ago
If I have a PHP site that doesn't require uploads, how exactly do I disable enough of multipart/form-data POST handling in PHP to mitigate this?
bulatb 3h ago
Block it at your web server before it reaches PHP. Ctrl+F "nginx" or ".htaccess" in this thread for configs.
dataflow 2h ago
Got it, thank you!
nilslindemann 2h ago
"Posting, captcha, sign-in and other dynamic pages are offline while we apply an urgent PHP security update" - https://4chan.org/
e12e 3h ago
Can anyone get the sha to match the download? (Given as a29d640e0481ff64a39541faeeeec0f998ecd18fb692816e75a6bcfa0f683017 in TFA)
synack 4h ago
It’s use-after-free where the “use” is execution of arbitrary code. Yeah, that’s pretty bad.
6510 4h ago
.htaccess

    <If "req('Content-Type') =~ /multipart/i">
        Require all denied
    </If>
secabeen 2h ago
This appears to have global effect if placed in a <Location> block in the root apache2.conf:

  # PHP 20261020 Remediation (Global)
  <Location />
    <If "req('Content-Type') =~ /multipart/i">
        Require all denied
    </If>
  </Location>
TekMol 4h ago
What about servers that run PHP from the Debian repos?

How fast will the repos be updated?

euph0ria 3h ago
On Reddit they stated that Ondrej is aware of the issue
shevy-java 4h ago
That website looks weird - was it AI coded?

It is visually interesting but also annoying. I hate to admit it, but as I grow older, I may get dumber and I much prefer simplicity at all times.

As for PHP: it also is a bit weird how programming languages have not yet all fixed existing bugs. Has not AI been used to find bugs or assumed bugs? Why are bugs found in old code still?

redox99 4h ago
Why would they hand code a website for an exploit that they probably found 15 minutes before and will be fixed in a few hours? The copy should have been better though.
eviks 3h ago
Because it takes less effort to paste text with basic readable formatting than doing this awfulness
xaksnTMu2 4h ago
Well Heartbleed and Shellshock had nice looking sites so we kindoff expect better?
redox99 3h ago
They had more time to prepare
nargek 2h ago
That's pure unreviewed slop
hparadiz 3h ago
Announcing this thing and then putting an embargo on the fix for 24 hours is by far the most irresponsible thing internals has ever done and I have seen them do some insane shit in the past 20 years.
kalleboo 2h ago
It may have made sense when finding exploits required some skill and time so 24 hours would be safe enough but now when anyone can just point an LLM at it...
hparadiz 2h ago
The POC was already out on Sunday apparently. When they announced it they made everyone go looking for it. In the before times even someone with decent cybersecurity and hacking experience might not be able to weaponize a POC. Today anyone can weaponize it immediately.
drum55 4h ago
The text of this is basically unreadable, any amount of human authorship would be better.
groestl 4h ago
It's things like "under the attacker's feet" which completely throw me off. While trying to parse the text, my brain tries to imagine a surprised hacker.
pfannkuchen 4h ago
LLM or Engrish? Reminds me of “thumb rule”.
frevib 4h ago
It reads like the average PR summary I had to review every day. ‘Had’, because I stopped doing that after being blessed by LGTM https://m.youtube.com/watch?v=3TNpOD6bov8&pp=ygUEbGd0bQ%3D%3...
lifeisloving 3h ago
Yeah but this AI music is worse than any AI produced code. They're both awful but I really lose all respect for people who think these Sumo songs sound good. Wow I hate that AI musician voice so much.
Yokohiii 3h ago
It really reads like it was passed 3 times through Claude.
raverbashing 3h ago
I'd say pass through any other AI that doesn't talk like someone filled with self-importance
shevy-java 4h ago
I just wrote almost the same thing (I start to write my comments before I read what others say, so that it is not influenced directly what I write). I am glad to come to the same conclusion - this website is both visually interesting as well as very annoying.
altmanaltman 4h ago
The font is terrible on mobile, cannot tell then difference between a comma and a fullstop at all
Davidzheng 4h ago
yeah agreed.
fwlr 3h ago
I can literally feel my eyes physically defocusing trying to read this, and I can’t help but conclude that, at a level below conscious thought, my brain is trying to defend itself from AI-generated text. Perhaps it is more of a cognitopoison than I explicitly knew.
coatmatter 3h ago
Ctrl-Alt-R for reader view in Firefox, not that it makes the whole thing much more interesting to look at - we'll forget about it all soon enough anyway. Don't forget to tweak the default settings for reader view for a better experience.
viccis 4h ago
>Steal Everything

>Leave Nothing

Cringe larping skiddie nonsense

himata4113 4h ago
Man, my experience with php was never good. Every php project I've encountered eventually had a monero miner infecting the machine as www-data user.
AndroTux 3h ago
Maybe that’s because you’ve only worked with WordPress with tons of unpatched plugins.

Every programming language has security vulnerabilities. PHP doesn’t have any more than others.

minitech 2h ago
> PHP doesn’t have any more than others.

Yeah it does. Part of it is being a popular starter language before people know what they’re doing, but a lot of it is legitimately terrible language[1] and API design, especially in older versions. It also has CVE-2026-109618, a type of vulnerability many languages aren’t even capable of having (since it wouldn’t be part of the language, and the library that implemented the equivalent would only be present when necessary and usually not written in C - with some exceptions).

[1] People have already covered this in depth, but here’s a lesser-mentioned taste: https://web.archive.org/web/20261017012819/https://www.php.n... (one section, btw)