LiteLLM PyPI compromised: malicious package 1.107.0 steals credentials via supply chain attack
21 октября 2026 года в PyPI опубликовали вредоносный релиз LiteLLM 1.107.0, который крал SSH-ключи, токены облачных провайдеров и данные браузеров.
21 октября 2026 года около 11:39 UTC в репозиторий PyPI загрузили релиз LiteLLM 1.107.0, в который внедрили вредоносный код. Все семь wheel-файлов для macOS, Linux, musl Linux и Windows содержали три дополнительных файла, отсутствовавших в исходном sdist и теге v1.107.0 на GitHub. Официальный Docker-образ litellm/litellm:1.107.0 также оказался скомпрометирован.
Как работал вредоносный код в LiteLLM PyPI
Файл cook.pth запускал cook.py при старте любого интерпретатора Python через механизм site. Скрипт размером около 61 КБ извлекал пароли и куки из Chromium и Firefox, SSH- и GPG-ключи, учётные данные AWS, Azure, GCP, Kubernetes, Docker, CI/CD-систем, а также переменные окружения других процессов. Данные шифровались AES-256-CBC и RSA-OAEP, затем отправлялись на http://www.litellm.dev/healthcheck.
sitecustomize.py создавал фоновый процесс, который каждый час проверял GitHub-репозиторий letters9813/pythonclient-test на наличие домена C2 и выполнял произвольный код. Stealer работал независимо от backdoor. Атака затронула все платформенные сборки, но не исходный код в репозитории.
PyPI удалил релиз примерно в 13:20–13:40 UTC. Docker Hub и GHCR также убрали затронутые теги. По данным JFrog и SafeDep, это уже второй инцидент с LiteLLM в 2026 году.
Хронология и последствия компрометации LiteLLM PyPI
Аккаунт letters9813 и домен litellm.dev зарегистрировали 13 октября. Мёртвая точка для C2 настроена 18 октября. Легитимная версия 1.106.2 вышла в 10:44 UTC. Вредоносные wheel-файлы собрали между 11:20 и 11:37, загрузили в 11:39–11:40. LiteLLM подтвердила инцидент около 06:32 PDT и рекомендовала считать скомпрометированными все учётные данные, извлечённые на машинах с установленным пакетом.

Проект еженедельно скачивают около 23 миллионов раз. Безопасными остаются версии 1.106.2, 1.107.0rc1 и rc2. Инъекция произошла на этапе сборки wheel или в релиз-пайплайне, что подтверждают записи provenance и отсутствие вредоносного кода в sdist. Пользователи enterprise-репозиториев не пострадали.
Сообщество отслеживает развитие событий в GitHub issue #47826. Разработчикам рекомендуют проверить установленные версии, ротировать токены и обновить сканеры зависимостей. Полные детали компрометации пайплайна релиза пока не опубликованы.
Частые вопросы
Какие версии LiteLLM безопасны после атаки на PyPI?
Безопасными признаны 1.106.2, 1.107.0rc1 и 1.107.0rc2. Все wheel-файлы версии 1.107.0 удалены из PyPI.
Что именно крал вредоносный код из LiteLLM PyPI?
Скрипт извлекал SSH/GPG-ключи, пароли браузеров, токены AWS, Azure, GCP, Kubernetes, CI/CD-систем и данные из таблиц LiteLLM.
Как распространялся backdoor в релизе 1.107.0?
Через cook.pth, cook.py и sitecustomize.py, добавленные только в wheel-сборки. Код запускался при старте Python без явного импорта пакета.
Нужно ли ротировать токены после установки LiteLLM 1.107.0?
Да. LiteLLM официально рекомендовала считать все извлечённые учётные данные скомпрометированными и выполнить ротацию.
Комментарии
Комментариев пока нет. Будьте первым!