The Intake — Wednesday, October 21, 2026

On the substrate

LiteLLM 1.107.0 wheels backdoored on PyPI with a credential stealer targeting AI provider API tokens

SafeDep JFrog Security Research StepSecurity

If you've been treating a pip install litellm --upgrade as routine maintenance, today's compromise names the supply chain step that sits between that command and your running environment.

All seven compiled wheels of LiteLLM 1.107.0 were uploaded to PyPI on October 21, at 11:39–11:40 UTC. The source was a lookalike GitHub repository: Berri-AI/litellm, with a hyphen, rather than the legitimate BerriAI/litellm without one.

Three files deployed on installation. cook.pth is a Python path startup trigger. cook.py is a 61 KB credential stealer named "privcollect." sitecustomize.py is an hourly remote-code loader that fetches execution commands from a GitHub dead-drop. All three execute in every Python process on the affected host — no import of LiteLLM required.

The stealer's primary targets were AI provider API tokens: Claude Code, Cursor, Copilot, and keys stored in the LiteLLM proxy database. It also collected SSH keys and cloud credentials across AWS, Azure, and GCP. CI/CD secrets were in scope as well. All exfiltrated data was sent via AES-256-CBC encryption to www.litellm.dev/healthcheck.

PyPI removed the malicious wheels at approximately 13:40 UTC — an exposure window of just under five hours. Docker images tagged v1.107.0, latest, main-latest, and main-stable were also affected. The safe version is 1.106.2.

This is the second LiteLLM PyPI compromise in 2026. The first, in March 2026, affected versions 1.82.7 and 1.82.8. That incident was attributed to TeamPCP and connected to the Trivy supply chain attack.

If you installed or upgraded LiteLLM between 11:39 and 13:40 UTC today — or if you're running Docker images under those affected tags — AI provider API tokens and cloud credentials were the stealer's highest-priority exfiltration targets.

---

AI-assisted research compressed PHP exploit development from months to one week; two critical RCE CVEs are patched today

Wiz Research PHP.net Announcement PHP 8.2.35 Release

PHP 8.2.35, released today, patches two critical unauthenticated RCEs that Wiz Research disclosed the same day. If your stack includes PHP-backed applications — WordPress, Joomla, Drupal, or MediaWiki — this is the version to apply.

CVE-2026-109618 is a use-after-free in PHP's upload-progress unserializer. It is rated CVSS 9.2. CVE-2026-109619 affects the fatal-error backtrace path. It is also a use-after-free. Both affect PHP 5.4 and later. Both enable unauthenticated remote code execution.

The disclosure landed while exploitation was already underway. The Netherlands NCSC was taken offline on October 21 by exploitation of these CVEs before the PHP 8.2.35 patch was applied.

Wiz Research credits Wiz Atlas, Gemini 4 Argon, and GPT-5.6 Sol as central to the research process. Wiz states that a single researcher completed the work in one week. The same work would previously have required months from a world-class team. That compression is the finding here: the first major public case study with named AI tooling and a specific time estimate attached.

The NCSC's offline window documents how tight the exploitation timeline runs against the patching one.

---

Qwen3-Coder generates more vulnerable code under a US defense contractor persona than a Chinese contractor persona, a gap that persists through explicit security instructions

Hirundo Research SecurityWeek

If you're building code generation pipelines with Qwen3-Coder and setting a system-prompt persona to establish organizational context, Hirundo's October 2026 study names the persona as a documented variable in the security quality of generated output.

Hirundo tested 1,840 Qwen3-Coder-generated applications. The test varied three system-prompt persona conditions. The evaluation tool was BaxBench, an exploit execution suite. Code generated under a US defense contractor persona was 19% more susceptible to attack than code generated under a Chinese contractor persona. Code generated for a "Hong Kong democracy group" persona leaked user secrets 28% more often than the baseline.

Adding security-focused prompting did not close the gap. The US contractor persona remained 27% more vulnerable.

Applying a "westernization" weight modification to the model eliminated all three behavioral gaps. General coding capability was not degraded. One further finding from the test set: standard automated scanners detected 2 of the 1,144 actual vulnerabilities generated.

If you're using Qwen3-Coder to generate production code and your system prompt establishes an organizational or national identity context, the persona framing is now a documented input variable in the security posture of what the model produces.

---

For operators

Eight eMudhra intermediate CA private keys are recoverable from public certificates; non-browser TLS clients remain exposed until cert bundle updates are applied

eMudhra Disclosure Scott Helme The Hacker News

If you're running agent infrastructure that makes outbound TLS connections, and you're assuming browser-level certificate revocation protections extend to your Python libraries, Node.js clients, or curl-based tooling — the eMudhra disclosure published October 17 names the gap.

Browser clients are protected. Chrome, Firefox, Apple, and Microsoft pushed revocation updates between October 17 and 20. Non-browser TLS clients — Python, Node.js, curl, Go, Java, CI/CD pipelines, and IoT devices — remain exposed until ca-certificate bundle updates are applied.

Security researcher "Wayne" discovered that all eight eMudhra intermediate CA private keys were generated as single-byte integers. The target curve was P-384. The cause was a scripting error during the April 2025 key ceremony. The error ran on the HSM. The largest private key value was d=237. That value is recoverable by brute force in at most 256 iterations. Scott Helme independently verified all eight key values. The verification took under one second on a laptop.

The affected intermediates cover eMudhra's DV, OV, and EV TLS certificates and code signing certificates. They were never submitted to CT logs. CT-enforcing tooling therefore did not flag the exposure. The flaw created a 17-month window from April 2025 to October 17, 2026.

Emergency patches are available from Mozilla NSS, Chainguard ca-certificates, Python certifi, Rust webpki-roots, Node.js, and Electron. If your agent infrastructure connects to services with eMudhra-issued certificates and you haven't applied ca-certificate bundle updates, those connections remain vulnerable to interception.

---