CodaconThe LiteLLM 1.107.0 compromise ran without an import. An eight-layer AI supply chain map shows where provenance and integrity are actually verified.
On October 21, a compromised LiteLLM 1.107.0 release was published to PyPI. It also reached the project's official container images. Two days later, Microsoft published its analysis: the package installed a Python startup hook, and the payload collected authentication material across developer tools, AI applications, cloud environments, browsers, and infrastructure.
The detail that matters is in one sentence of Microsoft's report: an application did not need to import LiteLLM for the payload to run.
Python processes .pth files in site-packages every time the interpreter starts. A line in such a file that begins with import is executed. A package that drops one runs code in every Python process on that machine or image, whether or not any program imports it.
That defeats the question most teams asked first: "Which of our applications depend on LiteLLM?" The answer that mattered was "Which of our environments installed it?" Those are different lists. A developer laptop that tried an AI gateway once, a shared CI image, a notebook server, and an agent's container can all carry a package no application declares.
A dependency scan that reads requirements.txt sees what your code asks for. It does not see what the environment executes at startup.
LiteLLM is a gateway: one interface in front of many model providers. Organizations that run several models route traffic through components like it, which means those components hold the keys to every provider at once, and often sit next to the cloud credentials of the agents that call them.
That makes the AI control plane part of your software supply chain, with a larger blast radius than most libraries. A compromised logging package leaks logs. A compromised gateway can leak every model API key, and the cloud and tool credentials of every agent on the same host.
For each agent or AI application, trace one path from the model to the data it touches. At every layer, ask one question: where is provenance or integrity actually verified, and by whom?
latest tag. LiteLLM's official images carried the payload too.Most first passes find verification at layers 3 and 4 for production applications, and almost nowhere else. Gateways, agent runtimes, and developer machines usually have none.
.pth files in production images and on developer machines. It is a short list, and it rarely changes legitimately.When a compromise is announced, the first hour is spent answering one question: where did this version run? If you already keep an AI agent inventory, the runtime and credentials fields give you the list of hosts and the list of secrets to rotate. Without it, you are searching.
Our GenAI Security Readiness Assessment builds this map for your agents and AI applications. We trace each path, record where integrity is verified, and turn every unverified layer into a finding with an owner and a fix. It is ordinary supply chain assurance, applied to the components that now hold your most valuable keys.