Several security issues were disclosed between 17 and 22 October 2026. Most of the risk sits with servers, but some of it reaches the laptops and phones people work on. For most people, updating and restarting is enough. Developers have more to check, starting with the malicious LiteLLM release.
Reflects what was publicly known on the last updated date. Every fact links to a primary source at the end of the page.
Several security issues were disclosed between 17 and 22 October 2026. Most of the risk sits with servers, but a few reach laptops and phones directly. Find yourself below, then work through the matching checklist.
You use a laptop, desktop or phone
Windows, macOS, iPhone, iPad, Android or Linux
Install pending system, browser and app updates, then restart. Most devices are already protected once they are up to date. The 10-minute checklist
Your Firefox has remote blocklist updates turned off
Usually set by an IT policy on managed computers
Update to Firefox 158.0.1, ESR 115.43.1 or ESR 153.5.1 or later. Standard Firefox has been protected since 17 October.
You write or run code on your own machine
Python, Node.js, Go, Rust, PHP, Docker or Homebrew
Runtimes and tools keep their own trusted certificates, and system updates do not reach them. The developer checklist
You installed Python packages on 21 October
Especially anything AI-related: DSPy, CrewAI, smolagents and others
Check for the malicious LiteLLM 1.107.0 release first, without starting Python. How to check safely
Browsers and operating systems block the compromised eMudhra certificates automatically. Keeping them updated is what protects you.
Update your operating system and restart
| Device | What to do |
|---|---|
| Windows | Settings > Windows Update > Check for updates. Install everything and restart. |
| macOS | System Settings > General > Software Update. Install and restart. |
| iPhone and iPad | Settings > General > Software Update. Install and restart. |
| Android | Restart your phone. The certificate block arrives through Google Play Services and a restart applies it immediately. Then install any pending system updates. |
| Linux desktop | Install all updates, including the ca-certificates package, and restart. |
Update your browser
| Browser | What to do |
|---|---|
| Chrome, Edge, Safari | Nothing beyond normal updates. Chrome blocked the certificates on 17 October without needing a restart. |
| Firefox | Protected on standard settings since 17 October. If you or your IT team have turned off remote blocklist updates, update to Firefox 158.0.1, ESR 115.43.1 or ESR 153.5.1 or later. |
Update your desktop apps
Update Cloudflare WARP or the 1.1.1.1 app, if you use them
Optional: check that your browser rejects the bad certificates
Open the two test pages below. A certificate or security warning means you are protected. If either page loads normally, update your operating system and browser and try again. Do not click through the warning.
Developer laptops carry their own runtimes and certificate stores, which operating system updates do not touch. Start with LiteLLM: it is the only item here where the damage may already be done.
litellm version 1.107.0 contained malware that steals credentials. It was available on PyPI and Docker on 21 October 2026 for about two hours. It may also have arrived as a dependency of DSPy, CrewAI, smolagents, langchain-litellm, llama-index-llms-litellm, Open Interpreter, Guardrails AI and others.
Run these from a terminal on macOS or Linux. Do not run python, pip, uv run or anything else that starts Python to check. Starting Python in an affected environment runs the malware again.
# Run from a shell. Do not start Python or pip to check.
find / -path '*-packages/litellm-1.107.0.dist-info' -type d 2>/dev/null
find / -path '*-packages/cook.pth' -type f 2>/dev/null
ls -la /tmp/.pc_once_72129118c59f5636c0bb /tmp/remote_code_loader.lock 2>/dev/null
docker images --digests | grep -E '1bbcb1443bc9|c00f9d92c427|7b00e91cd2fe'Also search your projects’ lockfiles:
# Run from the folder that holds your projects
grep -rnE 'litellm(\[[^]]*\])? *(==|-) *1\.107\.0([^0-9a-z]|$)' .If any of these return a result, stop and go to what to do if you find it. If nothing turns up and you use LiteLLM, pin it to litellm==1.106.2.
Full indicators, Kubernetes checks and how the malware works are in the LiteLLM advisory.
node --versionYou need 22.23.4, 24.22.1 or 26.12.1, or later in the same line. Node.js 20 and older receive no fix, so move to 22 or 24. If you use a version manager such as nvm, fnm, volta or mise, install the fixed version and make it your default. Pull fresh node Docker images and rebuild local images.
If a project depends on the undici package directly, upgrade that package too.
The ten vulnerabilities and fixed versions are covered in the Node.js advisory.
These tools bring their own list of trusted certificates and need updating separately.
| Tool | Fixed in |
|---|---|
| Python certifi | 2026.10.19 |
| pip | 26.2.2 |
| uv | 0.13.4 |
| botocore (AWS SDK for Python) | 1.43.117 |
| Go | Rebuild with 1.26.10 or 1.27.3 |
| Rust webpki-roots / rustls-webpki | 1.0.10 / 0.103.16 |
| Electron (if you build Electron apps) | 44.9.1, 43.8.1 or 42.11.16 |
| Homebrew ca-certificates | brew upgrade ca-certificates |
| cloudflared | 2026.10.2 |
Check that a tool rejects the bad certificate. An error means you are protected.
curl -sS -o /dev/null https://dv-g3b-emudhra.we-have-a-problem.com/ && echo "STILL TRUSTED"On a Mac: the built-in curl and other command-line tools read /etc/ssl/cert.pem, which Apple’s update does not cover. If the check above prints STILL TRUSTED, this removes the two affected roots and keeps a backup. A later macOS update may restore the file.
sudo cp /etc/ssl/cert.pem /etc/ssl/cert.pem.bak &&
awk '/^(###|===) /{skip=0}
/^=== .*\/CN=(AAA Certificate Services|emSign ECC Root CA - G3)$/{skip=1}
!skip' /etc/ssl/cert.pem.bak | sudo tee /etc/ssl/cert.pem > /dev/nullTests for Node.js and Python, and trust store fixes for Linux, are in the eMudhra advisory.
PHP used only on the command line is low risk, so update it with your next routine patch. If you serve anything with a local PHP web server that others can reach, update now to 8.5.12, 8.4.27, 8.3.36 or 8.2.35. On Homebrew, run brew upgrade php.
Patched packages for each distribution are in the PHP2Shell advisory.
Removing the package does not undo the theft. The credentials on the machine are what matter.
Disconnect the machine and stop working on it
Tell your IT or security team
Change passwords and keys from a clean device
Use a different device, then sign out of active sessions. The malware takes:
.env filesThe full list of secrets to rotate, and how to remove the startup files, is in the LiteLLM advisory.
This checklist is for the devices people use. Servers, containers and cloud workloads need more, and each issue has its own advisory.
Short answers. The sections above have the detail and sources.
Install pending updates and restart. Chrome, Firefox, Android, Apple and Microsoft platforms block the compromised certificates on their own. On Android, a restart applies the block immediately. You can confirm by opening the eMudhra test pages: a certificate warning means you are protected.
Many desktop apps are built on Electron, which ships its own copy of Node.js and its own certificate checks instead of using the operating system's. Electron 44.9.1, 43.8.1 and 42.11.16 block the compromised certificates, but each app only gets the fix when its maker ships an update built on one of them.
Search from a shell, not from Python. Look for a litellm-1.107.0.dist-info folder or a cook.pth file in any site-packages folder, the files /tmp/.pc_once_72129118c59f5636c0bb and /tmp/remote_code_loader.lock, and litellm 1.107.0 in your lockfiles. Running python, pip or uv run in an affected environment starts the malware again.
The built-in command-line tools on macOS read /etc/ssl/cert.pem, which Apple's update does not change. Removing the AAA Certificate Services and emSign ECC Root CA - G3 roots from that file fixes it. A later macOS update may restore the file.
22.23.4, 24.22.1 or 26.12.1, or later in the same release line. Node.js 20 and older receive no fix, so move to 22 or 24.
Vulneron matches new vulnerabilities and public exploits against your live surface, confirms what is actually exploitable for you, and alerts in real time only when it is critical.