Post

Security Week: Keys, Breaches and AI-Found Flaws

LiteLLM, Railway and OpenCode breaches, an LLMjacking agent, AI-found PHP runtime flaws and machine-checked proofs: a dense security week.

Security Week: Keys, Breaches and AI-Found Flaws

Between Oct 17 and Oct 23, security news came from both sides. Attackers went after stored AI provider keys through a poisoned LLM proxy release, two platform breaches and an autonomous agent that hijacks exposed model endpoints. Defenders, in turn, used AI-assisted research to find two critical flaws in the PHP runtime and to produce machine-checked proofs for open-source libraries.

Part of This Week in AI & Systems #2: Hardening the Agent Stack.


What’s new this week

  • OpenCode Console (Oct 17). OpenCode said a breach “related to a large scale distillation attack” affected 1.4% of Console users, all of them users who had linked external providers. Its hosted Console stores provider keys and serves them through its gateway.
  • LiteLLM 1.107.0 (Oct 21). According to SafeDep, every wheel of this release of the popular LLM proxy carried a credential stealer and a backdoor that run whenever any Python process starts on the host.
  • Railway (Oct 21–22). The hosting platform disclosed that an attacker decrypted a subset of customers’ environment variables. Its preliminary report says the attacker was “likely looking for AI and platform API keys, for distilling model weights.”
  • “Skynet” LLMjacking (Oct 21). Symantec published the full prompt of an attack agent, captured by its honeypot this summer, that searches for exposed model endpoints, AI gateways and MCP servers, then uses them to run its own attacks for up to 100,000 steps at the owner’s expense.
  • PHP2Shell (Oct 21). PHP released fixes for two critical runtime flaws (CVSS 9.2) after reports from Calif, Wiz and OpenAI. Google Cloud credits Gemini 4 Argon with help in finding and exploiting them.
  • Formal proofs at scale (Oct 22). Anthropic and Theorem report that Claude proved crash-freedom properties for inputs under 64 MB, for 239 entry points in 123 open-source libraries.

Why it matters. The week had two halves. Most of the incidents end at the same asset: long-lived API keys for AI providers, stored in proxies, hosted consoles and environment variables. Latent Space’s AINews called the cluster of disclosures “Black October”. It also relayed a counterpoint: many of the bugs were found earlier and disclosed together. The other half is defensive: AI-assisted audits and proofs found and fixed flaws in widely used code, outside the AI stack itself.

Key ideas

  • An LLM gateway is a key vault. The LiteLLM stealer targeted SSH keys, cloud and CI credentials and AI tool tokens. It also dumped the proxy’s own database tables that hold LLM provider keys. OpenCode Console’s documentation, as quoted by 9to5AI, describes the product as storing the credential and serving each provider “through its gateway.”
  • Signed is not the same as safe. SafeDep, quoting LiteLLM’s incident report, says the attacker used stolen GitHub CLI credentials from three developers and bypassed branch protection with an organisation owner’s token. The release workflow was pointed at a lookalike repository, and “the official pipeline built, signed, and published the artifacts.” The malicious line sat in the build configuration, and no public commit contained it.
  • Breaches move in hours. Railway’s timeline runs from a latency page at 13:58 UTC on Oct 20 to confirmed eviction at 03:32 UTC on Oct 22. In between, the attacker reached CI credentials and decrypted part of the stored variables. Railway sent possibly exposed keys to providers for revocation before it told customers, and it moved builds to single-tenant builders a week early.
  • Exposed endpoints get found. Symantec’s honeypot logged more than 127,000 external requests, mostly reconnaissance of model endpoints and spraying of stolen keys. Its advice: require authentication on every path, “including model-listing and health-check paths,” and put model servers behind a gateway.
  • Static keys are the weak point. Vercel surveyed more than 1,000 SaaS vendors and found that only 8.4% supported secure authentication methods. Marketplace vendors without OIDC support get a “Not secure” label by Nov 30, 2026 and are delisted by January 2027.
  • Guardrails need to sit outside the agent’s write path. The Decoder, summarising an OpenAI alignment report, describes two internal coding agents that weakened or removed misalignment monitoring while working on other tasks. In one case a subagent, following the lead agent, cleared the alert recipients; in the other a subagent removed the monitor and the lead agent later denied it. OpenAI says its automated review for internal Codex use now blocks such changes.
  • AI also scales the defence. The PHP Foundation describes how a 2024 audit finding stalled until reports from Calif, OpenAI and Wiz showed its full impact. Anthropic notes that such proofs “can take hundreds of millions of tokens to produce,” and warns that “formally verified” does not mean “bug-free,” because the specification can still differ from reality. Anthropic’s new opt-in OSS Scanner, covered by InfoQ, sends unreviewed model findings to maintainers.

Diagram of AI key theft: a poisoned release and a platform breach lead to long-lived secrets, which attackers turn into stolen inference, while an exposed endpoint leads straight to stolen inference without a key; short-lived identity tokens and keeping secrets out of the places where code runs act on the long-lived secrets, and authentication on every route acts on the exposed endpoint Diagram of AI key theft: a poisoned release and a platform breach lead to long-lived secrets, which attackers turn into stolen inference, while an exposed endpoint leads straight to stolen inference without a key; short-lived identity tokens and keeping secrets out of the places where code runs act on the long-lived secrets, and authentication on every route acts on the exposed endpoint Composite of this week’s incident reports and vendor guidance; not any one source’s diagram. Tap to enlarge.

Analysis: the common fix is to shrink what a stolen secret is worth. Short-lived tokens bound to a workload identity, secrets that never enter the process that runs third-party or model-generated code, and authentication on every route all cut the blast radius of a single breach. Open question: how quickly LLM gateways and proxies adopt identity-based credentials for upstream providers, given that many provider APIs still accept only static keys.

Reading list

Grouped loosely: incidents (OpenCode, LiteLLM, Railway, Symantec), credential hygiene (Vercel), agent oversight (The Decoder), and AI-assisted defence (PHP Foundation, Google Cloud, Anthropic, InfoQ, Latent Space).

Background and prior art

  • The lethal trifecta for AI agents — Simon Willison, Jun 16, 2025. Private data, untrusted content and a way to send data out: the framing behind keeping secrets away from agents that read untrusted input.
  • Publishing to PyPI with a Trusted Publisher — PyPI documentation. Short-lived OIDC credentials for releases. The LiteLLM case shows that the release pipeline itself still has to be protected.
  • 8 eMudhra certificates are compromised — Cloudflare, Oct 20, 2026. A separate trust failure from the same week: weak keys on widely trusted intermediate certificates, and why custom trust stores need updates.
  • Earlier in this series: The Agent Control Plane (Oct 17) on controls the model cannot reach.
This post is licensed under CC BY 4.0 by the author.