~2 hrs
Window during which the malicious litellm 1.107.0 package was live on PyPI on October 21, 2026 (approximately 11:39 UTC to 13:23 UTC), and Docker tags including latest, main-latest, and main-stable pointed to the backdoored image
4.5 hrs
Time between initial credential exfiltration from compromised systems and first observed live abuse of stolen credentials, per Wiz threat research; organizations that installed the package had less than 5 hours before active exploitation of their AI and cloud credentials
10+
Distinct credential classes targeted by the litellm 1.107.0 backdoor: OpenAI API keys, Anthropic API keys, AWS access keys, Azure credentials, GCP service account keys, Hugging Face tokens, SSH private keys, browser-stored credentials, and more -- every secret accessible from the compromised Python environment
2nd breach
LiteLLM's second supply chain compromise in 2026, per LiteLLM's own incident report, demonstrating a repeating targeting pattern against the project's build and release infrastructure rather than a one-time opportunistic attack

Reach 50,000+ security professionals

Sponsor a newsletter slot and put your brand in front of CISOs, engineers, and IT decision-makers.

Summarize with:

A backdoored version of LiteLLM -- a widely used Python library that standardizes calls to OpenAI, Anthropic, AWS Bedrock, Azure, and more than 100 other AI providers -- was published to PyPI and distributed via Docker on October 21, 2026, stealing AI API keys, cloud credentials, and SSH private keys from every system that installed it during an approximately 2-hour window. Wiz confirmed active abuse of stolen credentials within 4.5 hours of the first exfiltration, meaning the attack moved from developer install to live credential exploitation the same afternoon the malicious package went live.

LiteLLM is a core dependency in thousands of AI development projects. Teams building LLM-powered applications, RAG pipelines, and AI agents use it as a unified interface to switch between AI providers without rewriting call logic. The litellm PyPI package has been downloaded millions of times. Any organization that runs automated dependency updates, pulls the latest Docker image for development or staging environments, or operates CI/CD pipelines that install litellm without a pinned version hash was exposed during the 11:39 UTC to 13:23 UTC window on October 21.

The attack mechanism was a lookalike GitHub repository: Berri-AI/litellm (with a hyphen between Berri and AI) versus the legitimate BerriAI/litellm (no hyphen). Build provenance metadata in the malicious package pointed to this lookalike repository as its source. LiteLLM's own incident report identifies this as the project's second supply chain compromise in 2026, indicating the attackers had established persistent access to the build pipeline rather than executing a one-time opportunistic attack.

Every AI development team should verify their LiteLLM version right now. If any environment is running 1.107.0, treat it as fully compromised and rotate all credentials before upgrading.

How the LiteLLM Supply Chain Attack Works

LiteLLM is an open-source Python library that provides a unified interface for calling more than 100 AI language model providers. Developers import it to route prompts to OpenAI, Anthropic Claude, AWS Bedrock, Azure OpenAI, Google Gemini, and other providers through a single standardized API. Because it handles API authentication for multiple providers, a compromised version has direct access to every AI provider credential the application uses.

The attack chain had three stages. First, attackers created or compromised the GitHub repository Berri-AI/litellm -- a lookalike of the legitimate BerriAI/litellm that differs only in a hyphen between "Berri" and "AI." They populated it with a modified version of the codebase that included the credential stealer. Second, they compromised or manipulated the litellm build pipeline to source the release from this lookalike repository rather than the legitimate one. The resulting wheel files published to PyPI and the Docker images pushed to the container registry carried the malicious code while appearing functionally identical to the legitimate release.

Third, the malicious code executes at Python interpreter startup -- not at first import, but immediately when Python initializes -- before any application code runs. This timing is deliberate: even environments that import litellm conditionally or in try/except blocks received the malicious startup code without triggering the import. The backdoor steals every accessible credential type and dispatches them to an attacker-controlled server in a single POST request, then registers an hourly scheduled task for remote code execution.

The ConnectWise Cloud Backup supply-chain attack earlier this month demonstrated the same principle for SaaS OAuth credentials. LiteLLM demonstrates it for developer toolchains: compromise a trusted library, inherit every secret the dependent application touches.

Credentials Stolen: AI API Keys, Cloud Secrets, and SSH Keys

The litellm 1.107.0 backdoor systematically walked every common credential storage location accessible from the Python environment. Wiz's analysis documents the following credential categories as confirmed targets:

Credential typeLocation targetedRisk if compromised
OpenAI API keysOPENAI_API_KEY env var, .openai, config filesImmediate API cost fraud, data exfiltration via GPT calls
Anthropic API keysANTHROPIC_API_KEY env varSame as above for Claude API calls
AWS credentials~/.aws/credentials, AWS_ACCESS_KEY_ID env varFull AWS account access depending on attached policies
Azure credentialsAZURE_OPENAI_API_KEY, service principal filesAccess to Azure OpenAI deployments and Azure resources
GCP service accountsGOOGLE_APPLICATION_CREDENTIALS, application_default_credentials.jsonAccess to Vertex AI, Cloud Storage, and GCP project resources
Hugging Face tokensHUGGING_FACE_HUB_TOKEN, ~/.cache/huggingfaceModel downloads, private model access, dataset access
SSH private keys~/.ssh/id_rsa, ~/.ssh/id_ed25519, SSH key filesServer access, Git repository authentication
Browser credentialsChrome, Firefox, Edge credential storesAll stored website passwords

Any provider API key or cloud credential present in the environment during the window is now in attacker hands. The 4.5-hour turnaround to live abuse means key rotation cannot wait for a post-mortem review.

Free daily briefing

Briefings like this, every morning before 9am.

Threat intel, active CVEs, and campaign alerts, distilled for practitioners. 50,000+ subscribers. No noise.

The Two-Hour PyPI Window and 4.5-Hour Abuse Timeline

The timeline of the attack compresses the response window to near-zero for organizations running automated dependency updates.

LiteLLM's incident report places the malicious 1.107.0 package on PyPI from approximately 11:39 UTC to 13:23 UTC on October 21, 2026 -- a 104-minute window. During the same period, the Docker tags latest, main-latest, main-stable, and v1.107.0 on the GitHub Container Registry (ghcr.io/berriai/litellm) resolved to the backdoored image. Any CI/CD pipeline that ran pip install litellm (without a pinned version and hash) or docker pull ghcr.io/berriai/litellm:latest during that window installed the backdoor.

Wiz observed the first active use of stolen credentials approximately 4.5 hours after the malicious package was first available -- around 16:00 UTC on October 21. This 4.5-hour window is not a grace period; it is the time the attackers spent validating stolen keys automatically and selecting high-value targets. Organizations that installed the package at 11:39 UTC had credentials actively exploited by approximately 16:09 UTC the same day.

This is LiteLLM's second supply chain compromise in 2026. The earlier LiteLLM supply chain attack exposed CI/CD credentials across more than 430,000 pipelines. The recurrence confirms this is a targeted, persistent campaign against LiteLLM's release infrastructure, not a coincidence.

“We have confirmed that litellm==1.107.0 was the only compromised release. We identified the build pipeline compromise and have implemented additional controls. We strongly recommend any user who installed 1.107.0 to immediately rotate all credentials.”

LiteLLM Security Incident Report, October 21, 2026

Indicators of Compromise for the LiteLLM Supply Chain Attack

The LiteLLM 1.107.0 attack has not produced publicly disclosed C2 IP addresses or domains as of this writing. The primary indicators are version-based and behavioral. Any confirmed install of 1.107.0 is a compromise indicator; infrastructure IOCs are expected to follow from Wiz and StepSecurity research.

Version and package indicators:

  • litellm==1.107.0 on PyPI
  • Docker image digest matching the October 21 malicious build (see LiteLLM incident report for verified clean digests)
  • Build provenance referencing github.com/Berri-AI/litellm rather than github.com/BerriAI/litellm

Behavioral indicators (post-install):

  • Python subprocess launching at interpreter startup before application code executes
  • Outbound POST to an external endpoint at process startup (credential exfiltration)
  • A scheduled task or cron job created shortly after litellm installation
  • Unexpected reads of ~/.aws/credentials, ~/.ssh/id_rsa, GOOGLE_APPLICATION_CREDENTIALS path at process start

Hunt cloud audit logs for unusual AI API calls originating from IPs outside your known CI/CD or application infrastructure, particularly OpenAI, Anthropic, and AWS API calls, starting October 21, 2026 at 11:00 UTC.

Subscribe to unlock Indicators of Compromise

Free subscribers unlock full IOC lists, Sigma detection rules, remediation steps, and every daily briefing.

Sigma Detection Rules for LiteLLM Supply Chain Attack

Two generated Sigma rules target the LiteLLM 1.107.0 backdoor's behavioral signatures: startup-time credential file access from a Python process and scheduled task creation immediately after package installation. Both carry experimental status; validate log field names against your endpoint telemetry schema before enabling automatic blocking.

Subscribe to unlock Sigma Detection Rules

Free subscribers unlock full IOC lists, Sigma detection rules, remediation steps, and every daily briefing.

Subscribe to unlock Sigma Hunt Queries

Free subscribers unlock full IOC lists, Sigma detection rules, remediation steps, and every daily briefing.

Subscribe to unlock WAF Detection Rules

Free subscribers unlock full IOC lists, Sigma detection rules, remediation steps, and every daily briefing.

Immediate Response: Rotate, Rebuild, and Audit

Any environment that ran litellm 1.107.0 or pulled an affected Docker tag on October 21 must be treated as fully compromised. Do not delay rotation pending full forensic analysis -- the 4.5-hour window to live credential abuse means delayed rotation equals active attacker access to your AI providers and cloud infrastructure.

Subscribe to unlock Remediation & Mitigation steps

Free subscribers unlock full IOC lists, Sigma detection rules, remediation steps, and every daily briefing.

Why AI Development Toolchains Are the New Supply Chain Attack Surface

The LiteLLM attack is the second supply chain compromise targeting AI development infrastructure in 2026, and it follows a pattern that defenders need to internalize: AI libraries are high-value targets because they sit directly at the intersection of developer credentials and AI provider keys.

A developer installing litellm is implicitly granting it access to every AI API key in their environment. That is the library's purpose -- to hold and use those keys for routing. An attacker who compromises the library at build time does not need to target each developer individually. They compromise one project and inherit every key across every installation.

The scale of LiteLLM's adoption amplifies this. The library supports more than 100 AI providers and is deeply integrated into production AI pipelines, LangChain-based applications, and autonomous AI agent frameworks. Every pipeline using it as a dependency was exposed during the 2-hour window, regardless of whether it ran during that specific window, because the next run after the window could still pull the cached malicious wheel.

This is structurally identical to the earlier LiteLLM supply chain attack and to the broader pattern of PyPI supply chain attacks against developer tooling. The recurring compromise of the same project suggests the attackers have established durable access to LiteLLM's release process -- not a one-time lucky breach. Until LiteLLM provides a full post-mortem detailing the root cause and remediation, treat every future litellm release as potentially compromised and verify package hashes before installing.

The minimum viable defense for Python dependency supply chain attacks is hash pinning: every direct and transitive dependency in requirements.txt should have a hash specified via pip-compile or poetry.lock. A hash-pinned install fails loudly when the package content changes; an unpinned install silently accepts a backdoored replacement. If your CI/CD environment does not enforce hash-pinned installs for all AI libraries, the LiteLLM incident is the cost of that gap.

The bottom line

LiteLLM 1.107.0 was backdoored on PyPI for 2 hours on October 21, 2026, targeting AI API keys, cloud credentials, and SSH private keys across every affected system. Wiz confirmed live credential abuse within 4.5 hours, meaning any environment that installed this version may already have active attacker access to its OpenAI, Anthropic, AWS, and Azure accounts. Check pip show litellm right now: if the version is 1.107.0, treat the environment as compromised and rotate every AI and cloud credential before upgrading to v1.107.1 or rolling back to v1.106.2.

This analysis is generic. create a free account to score threats like this against your own stack.

Frequently asked questions

What is the LiteLLM 1.107.0 supply chain attack?

Attackers injected a credential-stealing backdoor into the litellm Python library on PyPI by compromising its build pipeline through a lookalike GitHub repository (Berri-AI/litellm, with a hyphen, versus the legitimate BerriAI/litellm). The malicious version 1.107.0 was published to PyPI and pointed at by Docker tags including latest, main-latest, and main-stable for approximately 2 hours on October 21, 2026. Any system or container that installed litellm during that window received the backdoor, which exfiltrates credentials at interpreter startup and runs a remote code execution loader on an hourly schedule.

What credentials did the malicious LiteLLM backdoor steal?

The litellm 1.107.0 backdoor targeted every credential accessible from the compromised Python environment. Confirmed targets include OpenAI API keys, Anthropic API keys, AWS access keys and secret keys, Azure service principal credentials, Google Cloud service account keys, Hugging Face access tokens, SSH private keys, browser-stored passwords, and other cloud and AI provider secrets present in environment variables, configuration files, or the filesystem. Wiz confirmed active abuse of stolen credentials beginning approximately 4.5 hours after the malicious package was first installed.

How long was the malicious LiteLLM 1.107.0 package live on PyPI?

The malicious litellm 1.107.0 package was live on PyPI for approximately 2 hours, from 11:39 UTC to 13:23 UTC on October 21, 2026. Associated Docker image tags (v1.107.0, latest, main-latest, main-stable) pointed to the backdoored image for a similar window before the legitimate tags were restored. LiteLLM's incident report states that only version 1.107.0 was affected; versions before and after that release do not contain the backdoor.

How do I know if my system installed the malicious LiteLLM version?

Run pip show litellm and check the Version field. If it reads 1.107.0, your environment is compromised and you should rotate all credentials immediately before upgrading. For Docker, check any images pulled between approximately 11:00 UTC and 15:00 UTC on October 21, 2026 -- run docker inspect to see the image digest and compare against verified clean digests in LiteLLM's incident report. CI/CD pipelines that do not pin dependencies and ran during that window should be treated as potentially compromised. Requirements files and lock files that specify litellm without a pinned version are the highest risk.

What is the safe version of LiteLLM to use now?

Version 1.107.1 and later are clean and do not contain the backdoor. If you need to stay on the 1.106.x branch, version 1.106.2 is the last clean release before the incident. LiteLLM has stated that 1.107.0 is the only compromised release and that 1.107.1 was published with a verified clean build after the incident was contained. Pin your version explicitly in requirements files and verify the package hash against PyPI's published checksums before upgrading.

What should I do if I ran LiteLLM 1.107.0 or the affected Docker images?

Treat the affected system as fully compromised. Immediately rotate every credential that was present in the environment during the exposure window: AI API keys for OpenAI, Anthropic, and other providers; AWS access keys; Azure service principal secrets; GCP service account keys; SSH private keys; and any other secrets in environment variables or configuration files. Rebuild the environment from a clean base image or virtualenv, upgrade to litellm 1.107.1, and audit your cloud provider logs for unauthorized API calls starting October 21, 2026 at 11:00 UTC.

How did attackers compromise the LiteLLM PyPI package?

The attack used a typosquatted GitHub repository (Berri-AI/litellm -- note the hyphen between Berri and AI) that mirrored the legitimate project (BerriAI/litellm, no hyphen). Build metadata in the malicious package pointed to this lookalike repository as the source, and container build provenance recorded it as the origin. The attackers appear to have compromised a build or release step that pulled from the lookalike repository rather than the legitimate one. LiteLLM has not disclosed the exact mechanism of the pipeline compromise at time of publication.

How quickly were stolen LiteLLM credentials abused after the breach?

Wiz observed active abuse of credentials stolen from systems that installed litellm 1.107.0 beginning approximately 4.5 hours after the initial exfiltration. This means organizations that installed the package at the start of the exposure window had less than 5 hours before attackers began using their stolen API keys and cloud credentials. The rapid turnaround indicates automated credential validation and immediate deployment of stolen keys, not a delayed manual attack.

Sources & references

  1. LiteLLM: Security Incident Report -- October 21, 2026
  2. BleepingComputer: LiteLLM PyPI Package and Docker Images Compromised to Steal Cloud and AI Credentials
  3. Wiz Research: LiteLLM Compromised, Steals Credentials
  4. StepSecurity: litellm 1.107.0 Compromised on PyPI -- Backdoored Wheels Drop a Credential Stealer
  5. The Hacker News: LiteLLM Compromised in Supply Chain Attack Delivering Credential Stealer and Backdoor
Summarize with:

Free resources

25
Free download

Critical CVE Reference Card 2025–2026

25 actively exploited vulnerabilities with CVSS scores, exploit status, and patch availability. Print it, pin it, share it with your SOC team.

No spam. Unsubscribe anytime.

Free download

Ransomware Incident Response Playbook

Step-by-step 24-hour IR checklist covering detection, containment, eradication, and recovery. Built for SOC teams, IR leads, and CISOs.

No spam. Unsubscribe anytime.

Follow Decryption Digest

Daily briefings + Google Top Stories in one step.

Enter your email and we'll subscribe you to the daily briefing and add Decryption Digest to your Google Search feed at the same time.

Free. Unsubscribe anytime. Google popup confirms the Top Stories add.

Eric Bang
Author

Founder & Cybersecurity Evangelist, Decryption Digest

Cybersecurity professional with expertise in threat intelligence, vulnerability research, and enterprise security. Covers zero-days, ransomware, and nation-state operations for 50,000+ security professionals every morning.

Daily Briefing

Get briefings like this every morning

Actionable threat intelligence for working practitioners. Free. No spam. Trusted by 50,000+ SOC analysts, CISOs, and security engineers.

Unsubscribe anytime.

Mythos Brief

Anthropic's AI finds zero-days your scanners miss.