Пакет для вызова 100+ нейросетей крал ключи при запуске Python — под ударом тысячи разработчиков
В Python-пакете LiteLLM версий 1.82.7 и 1.82.8, который загружают с PyPI около 97 млн раз в месяц, обнаружен встроенный стилер учетных данных. Вредоносный код крал SSH-ключи, токены AWS, GCP и Azure, конфигурации Kubernetes, криптокошельки и все переменные окружения — то есть, по сути, все API-ключи, которые LiteLLM и должен хранить как шлюз к OpenAI, Anthropic и еще сотне LLM-провайдеров. Скомпрометированные версии уже удалены с PyPI, последняя чистая — 1.82.6.
Атака сработала необычно: достаточно было просто установить пакет. В версии 1.82.8 вредоносный код запускался при каждом старте Python — не нужно было даже подключать библиотеку в своем проекте. Любой Python-скрипт на машине невольно активировал стилер. Собранные данные шифровались и отправлялись на домен models.litellm.cloud, замаскированный под официальный litellm.ai. В более ранней версии 1.82.7 малварь работала чуть скромнее — запускалась только при подключении библиотеки в коде.
Компрометацию обнаружили случайно: MCP-плагин в IDE Cursor подтянул LiteLLM как транзитивную зависимость, а баг в малвари — порождение дочерних процессов через .pth при каждом запуске Python — устроил форк-бомбу и съел всю оперативную память. Без этого сбоя стилер мог бы работать незамеченным значительно дольше. Один из разработчиков, обнаруживших проблему, написал: "Мы были взломаны… тысячи людей, вероятно, прямо сейчас под атакой".
Атаку приписывают группировке TeamPCP, которая за последнюю неделю марта провела серию supply chain атак: сначала — на сканер уязвимостей Trivy от Aqua Security, затем — на инструменты Checkmarx и KICS, теперь — на LiteLLM. Паттерн один и тот же: компрометация аккаунта мейнтейнера, публикация вредоносной версии в реестр пакетов, многоступенчатый стилер. В
Читать на habr.com