Tech — Work — Ramblings

by Mike Kalvas

202610211723 Two PHP vulnerabilities and a CA compromise

#microblog #link

It's been a wild 24 hours.

First there was the eMudhra intermediate certificate authority whose private keys were compromised (Mozilla post and report). Their keys were hilariously all 1 byte numbers even though they're supposed to be 384 bit (48 bytes). One of the keys was the number 4, as predicted in this timeless xkcd. This was apparently a human error, but their response was terrible (Update 2026-10-22: they ragequit the global cert business). One amusing result of this is that IOT boxes that can't or don't update are now trivially MITM'able forever. This can be a good thing for people who want to jailbreak and root devices they own, and it is a terrifying thing for people who don't want everything everywhere to be pwned forever.

Second there were two RCE vulnerabilities in the PHP language. One was due to OOM handling and the other was due to stale global state, but both at root were caused by memory safety issues caused by PHP being coded in C. "No way to prevent this" say users of only language where this regularly happens.

The PHP foundation issued a statement following up on the PHP vulnerabilities from today. There are a few interesting takeaways worth considering:

  • They were aware of the potential for these vulnerabilities since 2024 but could not agree on a resolution. These CVEs are particularly insidious because they're doing thread cancellation unsafely in C which is widely regarded as literally (not figuratively) impossible to do correctly and safely (a bit tangential but here's the article I always go to on this topic with most relevant bits in the appendix). This made it near impossible for them to come to a solution that was tractable and agreeable to the team and ecosystem. The solution they did come up with (which looks incredibly risky itself) took months of work and was a complete overhaul of their OOM handling.
  • They botched the disclosure process and multiple other details were leaked (both intentionally and unintentionally) making it a scramble instead of the regular coordinated release.
  • They have been inundated with AI slop vulnerability reports (including from Mythos and OpenAI Daybreak Red) with the vast majority of reports being invalid and/or unreproducible. This aligns with other recent reports that less than 1% of Project Glasswing disclosures result in a valid fix. It's caused a significant drain on their ability to assess and fix reports.
  • Frankly, it’s time to move away from C entirely.

~~Oh and just in the time I was writing this, 3 more C memory CVEs were disclosed in popular libraries.~~

Actually there have been many more today. It’s the day that just keeps on giving.