LiteLLM второй раз за год атаковали через цепочку поставок: пользователям советуют сменить все ключи
В среду в реестры PyPI и Docker попала скомпрометированная версия библиотеки LiteLLM, которая при установке запускала стилер учётных данных. Вредонос собирал облачные логины, секреты разработчиков и API-ключи для AI-сервисов. «LiteLLM скомпрометировали…
снова», — написал исследователь Кевин Бомонт. Это уже вторая атака на цепочку поставок проекта за год. Предыдущий инцидент произошёл в марте.

Тогда Hudson Rock проанализировала украденный архив объёмом 153 ГБ и связала его с 2488 корпоративными доменами, включая AWS, Samsung, Cisco и Salesforce. CloudSEK оценила число затронутых организаций почти в 2500. На этот раз злоумышленники проникли в сборочный конвейер LiteLLM 21 октября в 4:00 по тихоокеанскому времени и вытолкнули версию v1.107.0 в Docker-реестр и PyPI.
Вредоносный пакет оставался в PyPI с 11:39 до 13:23 UTC, а Docker-образы с тегами v1.107.0, latest, main-latest и main-stable раздавали заражённую сборку с 11:46 до 14:20 UTC. Безопасной считается версия v1.106.2, а все предыдущие релизы не пострадали. Простого обновления недостаточно.
Исследователь из Aikido Ильяс Макари предупредил, что всем, кто установил v1.107.0 до её отзыва, следует считать свои учётные данные скомпрометированными и сменить их. Токены были извлечены из логов внутреннего развёртывания LiteLLM, которое оказалось открыто в интернет. По данным компании, атакующий действовал через GitHub-аккаунты трёх инженеров, предположительно используя украденные OAuth-токены GitHub CLI.
Один аккаунт изменил сборочный конвейер и запустил релиз, второй — одобрил его, а третий — удалил записи о workflow, что ограничило доступные следователям логи. Внутри развёртывания была обнаружена неожиданная учётная запись с безобидным именем. LiteLLM отметила, что в определённых ситуациях Claude Code встраивает OAuth-токен GitHub CLI пользователя прямо в тело ответа, и если ответы логируются, токены могут оказаться в логах LiteLLM.
Пока не подтверждено, как именно злоумышленник получил доступ к внутреннему развёртыванию, но основное подозрение — недавно исправленная уязвимость. Инцидент считается локализованным, расследование продолжается, компания отзывает и ротирует все токены. Корпоративных клиентов частного реестра атака не затронула.
По оценке Socket, библиотеку загружают около 23 миллионов раз в неделю. Вредоносный код был помещён в файлы автозапуска Python, поэтому он исполнялся при каждом старте интерпретатора в заражённой среде, даже если приложение не обращалось к LiteLLM напрямую. Сборки существовали для macOS, Linux и Windows.
В записях сборочного конвейера контейнерного образа значился репозиторий Berri-AI/litellm — с дефисом, в отличие от легитимного BerriAI/litellm. Стилер охотился не только за учётными данными AWS, Azure, Google Cloud, Kubernetes и Docker, но и за Git-токенами, SSH- и GPG-ключами, сохранёнными логинами браузеров, куками, историей посещений и командной оболочки. Он также искал файлы аутентификации Codex, Claude, Gemini и Cursor и пытался вытащить сохранённые ключи и настройки моделей из базы прокси-развёртываний LiteLLM.
Собранные данные шифровались и отправлялись на адрес «healthcheck» домена litellm[.]dev. Второй компонент периодически проверяет файл на GitHub, чтобы получить домен для загрузки и выполнения дополнительного Python-кода. На момент проверки 21 октября файл был пуст, но стилер работал независимо от него, а содержимое файла может измениться позже.
Это не первый случай, когда инструменты на базе ИИ становятся источником риска — недавно агенты OpenAI сами отключили мониторинг безопасности Агенты OpenAI сами отключили мониторинг безопасности и скрыли это от разработчиков. Исследователи Wiz зафиксировали, что похищенные ключи начали проверять уже через четыре с половиной часа после утечки. Злоумышленник валидировал учётные данные AWS, полученные со скомпрометированных CI-раннеров и узлов Kubernetes, и проверял доступ к моделям Amazon Bedrock — такую активность связывают с LLMjacking.
В небольшом числе сред он также перечислял IAM-роли, пользователей и ключи доступа, а затем запрашивал сведения об учётной записи и логировании. Aikido, Wiz и Socket опубликовали подробные разборы с индикаторами компрометации и шагами по очистке для пользователей и команд безопасности. Всем, кто работает с LiteLLM, рекомендуется не только обновиться до безопасной версии, но и немедленно сменить все ключи и токены, которые могли оказаться в среде выполнения.
Источник: Оригинал