Good morning. It was a rough 24 hours for the people who build the web.
PHP2Shell: patch the interpreter, not the app
Two unauthenticated RCE flaws in the PHP interpreter itself (CVE-2026-109618, CVE-2026-109619) were patched October 21 in PHP 8.5.12, 8.4.27, 8.3.36, and 8.2.35. The details leaked online October 20 before coordinated disclosure, and AWS honeypots caught exploit attempts starting October 17, four days before the patch. One flaw corrupts memory during out-of-memory handling; the other leaves request state in freed memory, and the upload-progress handler can hand freed worker memory back to clients, memory that can hold passwords, session tokens, API keys, or TLS private keys.
What to do: patch PHP today. The bug is in PHP, not any one app, so updating WordPress does nothing until the interpreter is patched. PHP-FPM, mod_php, php-cgi, FrankenPHP, and LiteSpeed are all in scope. The days-after-a-patch grace period is gone.
LiteLLM 1.107.0: your AI supply chain took a hit
LiteLLM 1.107.0 shipped on PyPI and Docker with a credential stealer and a remote code loader baked in, delivered through three engineers' GitHub accounts via stolen OAuth tokens. The payload runs through Python startup hooks, so it fires even if your app never imports LiteLLM, and on Proxy installs it pulled up to 500 upstream provider keys from the database.
What to do: the last safe version is 1.106.2. If you pulled 1.107.0 anywhere, treat that host as burned and rotate every secret it could see.
Node.js October release: ten flaws, four high
Node.js shipped its October security release (26.12.1, 24.22.1, 22.23.4). The worst is CVE-2026-111497, an out-of-bounds write in the Brotli decoder that can run attacker code when your process decodes attacker-controlled Brotli data. Also in the bundle: two TLS hostname-check bypasses, a dns.resolve NUL-truncation bug, and the removal of the compromised eMudhra intermediate CAs from Node's trust store.
GitLab: maximum-severity RCE, again
GitLab's October 21 release patches CVE-2026-110264, a maximum-severity unauthenticated RCE reaching back to version 7.0 from 2014. If you patched the October 12 bug, you are not done: fixed releases are 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10, and 18.11.13.
Fresh in the IoC Library: the LiteLLM 1.107.0 malicious release window, the eight compromised eMudhra/emSign intermediate CAs (check your non-browser trust stores), and three attacker IPs tied to PAN-OS CVE-2026-0322 exploitation.
Full entries with huntable indicators: kevinthecyberguy.com/vuln-watch and kevinthecyberguy.com/ioc-library
