Comment by hparadiz

17 hours ago

There is no functional difference between doing just an announcement and doing an announcement with a series of builds containing the patch while withholding the source code. You do understand that right?

A message as vague as "there is a major RCE somewhere in this entire programming language" is usually pretty safe. We'll see how the details actually got out in this situation and whether the announcement caused it, but it still took a while. If you put out a patched build people will find and decompile the changes nearly instantly.

  • One security provider put "session.upload_progress.enabled, session.use_strict_mode" in the SEO keywords for their initial announcement, which was probably a good enough clue to feed to an LLM. https://web.archive.org/web/20261021005246/https://sansec.io... (go to page source, search for session.upload_progress). At least one person on Twitter saw this: https://x.com/its5q/status/2112700519261032497 Of course there's enough people who knew about this that the exploit vector may have leaked out to the general public through a different source as well.

    • And don't forget the php-fpm tag was there too. And it gives the exact version too in the article itself.

  • They gave too many details just by saying that it affects PHP 5 and later and is an RCE CVSSv4 9.2

    This lets an AI agent look at the changes made from PHP 4 to PHP 5 and it also lets the agent guess what type of vulnerability it must be.

    • Php4 -> 5 was a massive change including zendengine2 and an overhaul of many modules. Fortunately that information really doesn't tell us much. (Also it was a year of work between the first beta and the release - many changes at that time)

      I mean an agent can walk those changes, but it's close to just walking all the whole source / research from scratch at that point.

    • Are those specifics that helpful? If you're searching for vulnerabilities you can assume RCE 9.0 and you can split off 5 agents for major versions.

    • So what you're saying that it's only the 90% of lines of code that have been touched in the last 18 years. Yeah.

    • Yep. It's probably one of a handful of functions. It'll be based on request input, a script doesn't have to call the function, and it works with default configuration. I bet it takes a half hour for AI to figure it out.

A patched build is strictly more information, and you'd only need to cross correlate between the two.

At this point shipping the build already may have been the best option but not necessarily everyone is actually able to ship yet. And this is of course assuming the actual vulnerability is the same one as the PoCs that are being tried, and not something even nastier instead