Most people picture a cyberattack as someone breaking into a website. The attacks in this article work differently. The attacker never touches your site. They poison a free software package that developers download and trust, and wait for the harmful update to arrive on its own.

In recent months, popular packages for Python and Node.js (the two ecosystems behind a huge share of modern websites, apps and AI tools) have been compromised in this way. The common goal is to steal what a developer’s computer or build server holds: passwords, cloud keys, payment and AI service tokens, and access to your code.

This article reflects what security researchers and government agencies had published by October 23, 2026. Some details are still being investigated and may change.

The incidents at a glance

IncidentEcosystemWhat happened
LiteLLM 1.107.0
October 21, 2026
Python (PyPI)A popular AI library was published with a hidden credential stealer and remote-access backdoor.
“Shai-Hulud” worm (Keyv and related packages)
Advisory of August 6, 2026
Node.js (npm)1,300+ package versions were compromised by malware that steals credentials and spreads itself to more packages.
npm Trusted Publishing flaw
Fixed October 2, 2026
Node.js (npm)A design weakness could let an attacker publish new versions of 1,500+ packages they did not own.

1. LiteLLM on PyPI: a backdoored AI library (October 21)

LiteLLM is a widely used Python library that lets applications talk to many AI services through one interface. On October 21, 2026, version 1.107.0 was published to PyPI, Python’s main package registry, with malicious code inside it. Security firms StepSecurity and OX Security both analysed it.

If you installed or upgraded to LiteLLM 1.107.0 anywhere, treat that machine as compromised. The security firms name 1.106.x as the last clean release.

2. The “Shai-Hulud” npm worm (Keyv and related packages)

On August 6, 2026, the Cyber Security Agency of Singapore warned of an active attack on the npm registry, the main package store for Node.js. Malicious versions of Keyv, a popular caching library, and many related packages carried malware from the “Shai-Hulud” family, described as a self-spreading variant.

3. A flaw in npm’s publishing trust (fixed October 2)

Researchers at Bloom Security found that npm’s “Trusted Publishing” feature, meant to make releases safer, identified the linked GitHub repository only by its name. If the owner renamed, moved or deleted that repository, an attacker could register the old name and then publish new versions of the package without stealing any password. More than 1,500 packages were exposed, with over 10 million downloads in total.

GitHub announced a fix on October 2, 2026. It is not known whether anyone abused the flaw in the wild. Because such a release would carry a valid-looking “provenance” stamp, the researchers warn that even trust signals need checking. Package maintainers should review their linked repositories (npm trust list) and re-create any that point at a renamed or moved repository.

What these attacks cost a business

You do not need to be a software company to be affected. If your website, shop, app or internal tools are built on Python or Node.js, someone installed these packages on your behalf. When a developer machine or build server is compromised, the consequences reach well beyond that one computer:

Not sure what your website or app depends on?

We can map your dependencies, check for the packages named here, and tell you plainly what to fix first.

Request a Security Check

What to do right now

  1. Search for LiteLLM 1.107.0 in every environment: developer laptops, servers, containers and CI pipelines. Pin to a clean 1.106.x release. Rebuild rather than clean in place.
  2. Check your Node.js projects against the package list in the Singapore advisory, including indirect dependencies. Your developer can run npm ls keyv and similar for each name.
  3. If anything affected was installed, rotate secrets. Replace cloud keys, SSH keys, API tokens, database passwords and CI secrets that machine could reach, starting with the most powerful.
  4. Check for signs of misuse: unfamiliar logins, new access keys, unexpected cloud resources, and traffic to the domains in the published indicators.
  5. Ask your developer or agency in writing whether any of this applies to your systems and what they found.

How to protect yourself from the next one

There will be another poisoned package. The aim is to make sure it cannot do much when it arrives. These habits work for Python, Node.js and other ecosystems such as PHP’s Composer, Ruby and Java:

Software supply chain self-check
0 of 8

This is a quick review, not a security audit. Ticking an item does not verify that your systems are actually safe.

Need a hand?

Software supply chain risk is hard to see from the outside. DevSeguro combines web development and cybersecurity: we build with secure dependency practices from day one, and we review existing websites and applications for exposed secrets, risky packages and weak deployment settings. See our Security Check and assessments or our maintenance plans, or contact us and we will tell you what we would fix first.

Sources

DevSeguro logo
DevSeguro Team
We write about what we actually do — build and secure things.
Keep reading