Злоумышленники опубликовали заражённую версию LiteLLM 1.107.0
21 октября 2026 года скомпрометированную версию LiteLLM 1.107.0 опубликовали на PyPI и в официальных контейнерных образах. По имеющимся данным, выпуск стал результатом использования украденных учётных данных разработчика и перенаправленного процесса выпуска. В каталог библиотек Python, а не в стандартный каталог приложения LiteLLM, поместили вредоносные файлы: cook.pth, cook.py и sitecustomize.py.
Автозапуск и сбор данных
Полезная нагрузка задействовала механизм, который Python использует при запуске. Строка import cook в файле cook.pth запускала декодирование и распаковку встроенной программы на Python под названием PRIVCOLLECT. Она могла выполняться при запуске Python, даже если LiteLLM не импортировали. Маркеры в переменных окружения и временных файлах предотвращали повторный запуск, а сбор данных начинался в отдельном демоническом потоке.
Отдельный загрузчик в файле sitecustomize.py, предназначенный для Unix, получал блокировку и извлекал адрес сервера из файла domain.txt, размещённого на GitHub. Загрузчик должен был получать и выполнять дополнительный код Python с конечной точки /codepy. Активность этого второго этапа не подтверждена.
Сборщик нацеливался на учётные данные и конфиденциальные конфигурации инструментов разработчиков, приложений ИИ, облачных сред и браузеров, а также переменных окружения, SSH, GPG и материалов TLS. Кроме того, он пытался запрашивать выбранные записи базы данных LiteLLM с учётными данными и конфигурациями моделей. Сервисы метаданных AWS и GCP опрашивались для получения учётных данных, однако успешное извлечение не подтверждено. В Windows вредоносная программа поддерживала сбор данных из баз данных браузеров на основе Chromium и механизмов восстановления паролей.
Шифрование, передача и действия при расследовании
Собранные данные сериализовались в формате JSON и шифровались с помощью AES-256-CBC. Для каждого запуска использовались уникальный 32-байтовый ключ и 16-байтовый вектор инициализации; данные также защищал встроенный публичный ключ RSA размером 4096 бит. Архив содержал зашифрованные данные, обёрнутый ключ и метаданные. Вредоносная программа пыталась передать архив HTTP POST-запросом на hxxp://www.litellm.dev/healthcheck, используя контрольную сумму X-SHA256 и механизм повторных попыток.
Обычный запуск Python мог привести к выполнению полезной нагрузки, поэтому рабочие станции, системы CI/CD, контейнеры, тестовые среды и агенты сборки могли быть скомпрометированы. Авторы отчёта рекомендуют специалистам, проводящим расследование, не запускать Python и не выполнять pip в предположительно затронутых средах. Удаление LiteLLM само по себе может не удалить файлы автозагрузки и процессы, а также не устранить последствия компрометации учётных данных. Затронутые среды и доступные секреты требуют расследования и устранения уязвимостей.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



