PHP patches two RCE bugs, eMudhra’s CA key was the number 4, and LiteLLM shipped a stealer

4 hours ago

PHP shipped fixes for two bugs that let one unauthenticated request run code on a PHP server, and the PHP Foundation explained how the fix took two years and then shipped a day early. Also from Wednesday's Hacker News front page: eMudhra's one-byte certificate authority keys, Meta's Muse share links showing up in public DNS, and a LiteLLM release on PyPI that stole credentials. Security advisory: Critical remote code execution vulnerabilities, update now https://www.php.net/archive/2026.php#2026-10-21-5 Discussion: https://news.ycombinator.com/item?id=50172041 Today's PHP security release, and how we're strengthening PHP security, by the PHP Foundation https://thephp.foundation/blog/2026/10/21/todays-php-security-release-and-how-were-strengthening-php-security/ Discussion: https://news.ycombinator.com/item?id=50182987 dofm on blocking multipart uploads in nginx: https://news.ycombinator.com/item?id=50186149 Eight Bits of Trust: eMudhra's CA keys cracked in milliseconds, by Scott Helme https://scotthelme.co.uk/eight-bits-of-trust-emudhras-ca-keys-cracked-in-milliseconds/ Discussion: https://news.ycombinator.com/item?id=50177916 Muse exposes users' personal and business secrets when they share conversations, by Dan Goodin, Ars Technica https://arstechnica.com/security/2026/10/meta-muse-exposes-users-personal-and-business-secrets-when-they-share-conversations/ Discussion: https://news.ycombinator.com/item?id=50174687 omoikane on subdomains and passive DNS: https://news.ycombinator.com/item?id=50176326 Compromised LiteLLM 1.107.0 on PyPI Installs a Credential Stealer and Backdoor, by Kunal Singh, SafeDep https://safedep.io/litellm-pypi-compromise-credential-stealer-backdoor/ Discussion: https://news.ycombinator.com/item?id=50181114 The front page that day: https://news.ycombinator.com/front?day=2026-10-21

Ask

Ask about this presentation

Answers are generated from this presentation.

Chapters

  1. 0:00PHP patches two RCE bugs
  2. 0:19Update PHP now
  3. 0:52Until you can patch
  4. 1:28Two years to a fix
  5. 2:05eMudhra's one-byte CA keys
  6. 2:45Muse share links
  7. 3:19LiteLLM 1.107.0
Show transcript

PHP patches two RCE bugs

Hacker News Y logo

PHP patches two RCE bugs, eMudhra’s CA key was the number 4, and LiteLLM shipped a stealer

On Wednesday's HN front page, PHP shipped fixes for two bugs that let a single unauthenticated request run code on your server. Every PHP install that serves web requests is exposed: PHP-FPM, Apache with mod_php, FrankenPHP and LiteSpeed. Apache with mod_php is the worst case.

Update PHP now

Update PHP to one of these four releases

8.5.12
8.4.27
8.3.36
8.2.35

On Apache with mod_php, the attack runs before any application code.

Both bugs sit in code almost every request touches. In one, a request that hits the memory limit at the wrong moment leaves half-built data behind, and PHP later treats it as valid. In the other, a fatal error leaves state pointing at memory from an earlier request, and the next request on that worker uses it. Linux distributions got the patch early, so check your vendor's packages first. PHP 8.1 and older are out of support, so they need a backport or an upgrade.

Until you can patch

Until you patch, settings only narrow the way in

memorymemory_limit=-1
uploadspost_max_size = 8M
sessionssession.upload_progress.enabled=0

A three-line nginx rule blocking multipart uploads

dofm, in the thread

If you can't patch a server yet, three settings block specific paths: an unlimited memory limit, a small maximum post size, and upload progress tracking switched off. Each one needs every worker restarted, and each leaves other paths open. In the thread, dofm blocked multipart uploads with a three-line nginx rule on a server they couldn't take offline, and it held off automated attacks until the patch shipped. Limits at the web server reduce exposure. Only the update removes it.

Two years to a fix

The memory bug surfaced in 2024 and shipped a day early

2024An external audit turns up the first sign
Aug 11, 2026Calif and OpenAI report the same root cause
Oct 20The CVE IDs leak, with a wrong score of 10.0
Oct 21, 07:41Chainguard ships patched images
Oct 21, 14:00PHP releases the fix, one day ahead of plan

The memory bug first showed up in 2024, during PHP's first outside audit in years. The security team decided by consensus, couldn't agree on a fix, and the work stalled for months. On the same day in August, the security firm Calif and OpenAI each reported its root cause, and Calif had it running code remotely. On Tuesday the CVE numbers leaked, and the release moved up a day. Chainguard published patched images more than six hours before that, which handed attackers the fix to study early.

eMudhra's one-byte CA keys

eMudhra’s CA private key was the number 4

d = 0x000000000000000000000000000000000000000000000000…4
ca-certificates certifi Node container images

The certificate authority eMudhra created eight intermediate certificates in April 2025, and every private key was a single byte. A key on this curve should be a random 384-bit number. One of these was 4, and all eight fall in under a second on a laptop. Chrome and Firefox now block them. Curl, Python, Node and Go trust the CA bundle on disk and skip revocation checks, so update your CA certificates package, certifi and Node, and rebuild your container images. Routers and printers with frozen firmware will trust these keys until 2039.

Muse share links

Meta’s Muse put each shared chat’s title in a public hostname

loan-application-draft-a4c9e2.cf.metaaiusercontent.com

6,800 share links found with one passive DNS query. Sharing is paused.

Meta's Muse agent made a web link for every conversation a user shared, and put the conversation's title in the subdomain. Opening the link triggers a DNS lookup, and passive DNS services keep those names where anyone can search them. One query turned up about 6,800 shared links, among them loan applications and a company's revenue review. Meta has paused sharing. In the thread, omoikane drew the lesson for anyone building share links: keep anything meant to stay unguessable out of the subdomain.

LiteLLM 1.107.0

LiteLLM 1.107.0 ran a credential stealer in every Python process

site-packages/cook.pth
import cook
Which LiteLLM version does your lockfile pin?

The LiteLLM 1.107.0 wheels on PyPI installed three extra files. One is a path file, which Python runs at startup, so the stealer fires in every Python process on the machine, even ones that never import LiteLLM. It takes SSH keys, cloud credentials, CI secrets and the provider keys in a LiteLLM proxy database, and a background process fetches new code every hour. PyPI has pulled the release, and 1.106.2 is clean. If cook.pth is in your site packages, rotate every credential on that machine. Which LiteLLM version does your lockfile pin?

Up next

3:33

eMudhra’s one-byte CA keys, DeepSeek’s open DeepInfer engine, and WhatsApp’s hidden chatbot orders

@hacker-news · 1 day ago

4:15

MiniMax M3.1 Flash cuts agent costs by 70%, Timestral forecasts on a CPU, and Wine reaches OpenBSD

@hacker-news · 2 days ago

3:21

DeepSeek's $0.75 search API for agents, Lean's five-kernel proof check, and Pele

@hacker-news · 3 days ago

3:32

DeepSeek V4.1 Flash reasons less for the same answers, llmspeed, and a web app built in Lean 4

@hacker-news · 4 days ago

4:11

Claude traced NIST’s P-256 seed to a 1997 timestamp, Muse Spark Open runs on four Mac Studios, and UTC drops leap seconds

@hacker-news · 5 days ago

3:37

Muse Spark Open runs on two Mac Studios, ads that deliver spyware, and a Wi-Fi bug TCP can’t see

@hacker-news · 6 days ago

3:38

Android 17's libc stops at the first emoji, AI agents escape through a package mirror, and pg_vectorsearch

@hacker-news · 1 week ago

4:25

Anthropic replaced git with Scion, Gemini 4 Argon, and an 11-year-old hole in Rust’s borrow checker

@hacker-news · 1 week ago

3:17

Google ads now allow fingerprinting, QGIS bans AI code, and Gran Turismo 4 in WebAssembly

@hacker-news · 1 week ago

3:50

Claude Code and Codex agents rebuilt a shooter byte for byte, a €150 README test, and DDR4 is back

@hacker-news · 1 week ago

3:42

REA reverse engineers any app for your coding agent, Telegram Desktop’s one-click leak, and Bitwarden’s new license

@hacker-news · 1 week ago

2:56

Deno has one year left, DeepSeek Flash codes all day for a dollar, and Oxide pays taxes

@hacker-news · 1 week ago