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

180 pointsposted 9 hours ago
by rfarley04

60 Comments

lorenzbrun

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

InvisibleUp

8 hours 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

8 hours 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

7 hours ago

Which is also what tfa says btw

idlewords

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

6 hours ago

the future is now, eh.

iambateman

8 hours ago

I turned the server off on our app until this storm is over.

tosti

8 hours ago

Yeah, the circuit breaker is the best firewall!

lionkor

8 hours ago

Someone uses Claude to role play as a hacker... Yikes

80fj0348i

8 hours ago

Previously submitted with a much better source: https://news.ycombinator.com/item?id=50172041

tech234a

8 hours ago

This one claims to actually be an exploit. The other was an announcement from PHP without details.

lifeisloving

8 hours 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

8 hours 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

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

dataflow

8 hours 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

7 hours ago

Block it at your web server before it reaches PHP. Ctrl+F "nginx" or ".htaccess" in this thread for configs.

ffritz

7 hours 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/

indigodaddy

7 hours ago

CF in front can mess about with L7?

minitech

6 hours ago

Yes? How did you think Cloudflare and other WAFs worked?

Hamuko

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

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

hemlock4593

3 hours ago

Disabled everything except GET requests and hope it holds until 2pm

e12e

8 hours ago

Can anyone get the sha to match the download? (Given as a29d640e0481ff64a39541faeeeec0f998ecd18fb692816e75a6bcfa0f683017 in TFA)

synack

8 hours ago

It’s use-after-free where the “use” is execution of arbitrary code. Yeah, that’s pretty bad.

6510

8 hours ago

.htaccess

    <If "req('Content-Type') =~ /multipart/i">
        Require all denied
    </If>

secabeen

6 hours 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

8 hours ago

What about servers that run PHP from the Debian repos?

How fast will the repos be updated?

euph0ria

8 hours ago

On Reddit they stated that Ondrej is aware of the issue

shevy-java

8 hours 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

8 hours 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

7 hours ago

Because it takes less effort to paste text with basic readable formatting than doing this awfulness

xaksnTMu2

8 hours ago

Well Heartbleed and Shellshock had nice looking sites so we kindoff expect better?

redox99

8 hours ago

They had more time to prepare

hparadiz

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

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

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

nargek

7 hours ago

That's pure unreviewed slop

drum55

8 hours ago

The text of this is basically unreadable, any amount of human authorship would be better.

groestl

8 hours 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

8 hours ago

LLM or Engrish? Reminds me of “thumb rule”.

frevib

8 hours 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

8 hours 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

8 hours ago

It really reads like it was passed 3 times through Claude.

raverbashing

7 hours ago

I'd say pass through any other AI that doesn't talk like someone filled with self-importance

shevy-java

8 hours 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

8 hours ago

The font is terrible on mobile, cannot tell then difference between a comma and a fullstop at all

fwlr

8 hours 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

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

8 hours ago

>Steal Everything

>Leave Nothing

Cringe larping skiddie nonsense

himata4113

8 hours 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

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

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

AndroTux

3 hours ago

> but a lot of it is legitimately terrible language[1] and API design

Unlike well-thought-out languages like JavaScript, of course.

What's the saying? A programming language is either bad, or no one uses it. Discussions about flavors of bad in well-established programming languages are a waste of time.