All posts
Security

One Wednesday in October: PHP, Node.js and LiteLLM, and What It Says About Patch Speed

By

October 24, 2026

7 min read

On October 21, 2026 two critical PHP flaws were disclosed after being exploited for four days, Node.js shipped ten security fixes, and LiteLLM, the gateway holding many companies' AI API keys, published a release with a credential stealer inside. What that day teaches about how fast "fast" now has to be.

Supply Chain
LiteLLM
Patch Management
AI Security

Three incidents, one day

  • PHP2Shell: two unauthenticated RCEs in PHP 8.2–8.5, with exploitation seen on October 17 — four days before the fix was public.

  • Node.js: ten vulnerabilities fixed across 22, 24 and 26, including a Brotli RCE and two TLS hostname bypasses.

  • LiteLLM 1.107.0: a malicious release published to PyPI and to the official Docker images through the project's own compromised release pipeline. It installed a credential stealer that runs whenever Python starts, plus a remote-code loader.

Each would have been a busy week on its own. Together they make a point worth sitting with: a patch window measured in weeks is no longer a patch window. Amazon's own advice after PHP2Shell is to treat critical internet-facing vulnerabilities with hour-based patch targets.

The LiteLLM compromise, specifically

LiteLLM is a popular open-source gateway that sits between applications and model providers — OpenAI, Anthropic, Bedrock and the rest — which means it typically holds the API keys for a company's entire AI stack. On October 21 an attacker using stolen developer tokens pushed a release built from a lookalike repository. The malicious litellm==1.107.0 was on PyPI from 11:39 to 13:23 UTC, and the v1.107.0, latest, main-latest and main-stable Docker tags were affected for roughly two to two and a half hours.

It was the project's second supply-chain compromise this year: in March, litellm 1.82.7 and 1.82.8 shipped a credential harvester through stolen PyPI credentials.

Want a second opinion on this for your system?

Book a free 30-minute call. You'll leave knowing what we'd do first and roughly what it costs, whether or not you hire us.

What actually protects you

Know what you run

Every team that had a good week on October 21 could answer "where do we run PHP, which Node versions, and who pulls litellm?" in minutes. Amazon Inspector, ECR scanning and an SBOM per image get you there on AWS; the important part is that the answer exists before you need it.

Pin, and pull from somewhere you control

The LiteLLM releases only reached teams that installed unpinned versions or followed floating tags like latest. Pin exact versions and image digests, and pull through a private repository — CodeArtifact for packages, ECR pull-through cache for images — so a poisoned upstream release has to be let in on purpose.

Let managed services do the patching

Lambda functions on managed runtimes with automatic runtime updates, and Beanstalk environments with managed platform updates, were patched by AWS while self-managed fleets waited for a human. Every runtime you manage yourself should be a decision, not a default.

Assume the gateway is a crown jewel

An LLM gateway sees every prompt and holds every key. Run it with its own least-privilege role, keep provider keys in Secrets Manager rather than environment files, restrict its outbound network to the providers it needs, and watch its egress — a credential stealer has to send what it stole somewhere.

hoolco Monthly Review

Once a month: what changed in tech that month and what it means for you, from cloud and AI to security and the tools you build with. Every item links to its source. No sales pitch, unsubscribe in one click.

As of October 24, 2026. Provided as is, for general information, and accurate to the best of our knowledge on the date shown. Not legal, compliance, tax, financial or other professional advice. Prices, limits and vendor services change; check current vendor documentation before relying on anything here. Terms of use.