Популярный пакет LiteLLM в PyPI был скомпрометирован с целью кражи учетных данных и токенов аутентификации

2026-03-25 97 комментарии
Пакет LiteLLM на PyPI был скомпрометирован: версии 1.82.7 и 1.82.8 содержали инфостилер, крадущий ключи, токены и данные из Kubernetes и облаков. Затронуты сотни тысяч систем. Рекомендуется срочно удалить уязвимые версии, обновиться до 1.82.6 и сменить все учетные данные

Хакерская группа TeamPCP продолжает свою серию атак на цепочки поставок, на этот раз скомпрометировав чрезвычайно популярный Python-пакет «LiteLLM» на PyPI и заявив, что в ходе атаки ей удалось похитить данные с сотен тысяч устройств.

LiteLLM — это библиотека с открытым исходным кодом на Python, которая выступает в роли шлюза к нескольким поставщикам больших языковых моделей (LLM) через единый API. Пакет пользуется огромной популярностью: более 3,4 миллиона загрузок в день и свыше 95 миллионов за последний месяц.

Согласно исследованию компании Endor Labs, злоумышленники получили контроль над проектом и опубликовали вредоносные версии LiteLLM 1.82.7 и 1.82.8 на PyPI, которые разворачивают инфостилер, собирающий широкий спектр чувствительных данных.

Ответственность за атаку взяла на себя группа TeamPCP, которая ранее стояла за недавним резонансным взломом сканера уязвимостей Trivy от Aqua Security. Считается, что этот инцидент привел к цепочке последующих компрометаций, затронувших Docker-образы Aqua Security, проект Checkmarx KICS, а теперь и LiteLLM.

Также было установлено, что группа нацеливается на кластеры Kubernetes, используя вредоносный скрипт, который полностью стирает все машины, если обнаруживает системы, настроенные для Ирана. В противном случае он устанавливает новый бэкдор CanisterWorm на устройства в других регионах.

Источники сообщают что количество случаев утечки данных составляет примерно 500 000, при этом многие из них являются дубликатами.

Атака на цепочку поставок LiteLLM

Компания Endor Labs сообщает, что злоумышленники распространили две вредоносные версии LiteLLM, каждая из которых содержит скрытую нагрузку, выполняющуюся при импорте пакета.

Вредоносный код был внедрен в файл litellm/proxy/proxy_server.py в виде полезной нагрузки, закодированной в base64, которая декодируется и исполняется каждый раз при импорте модуля.

Версия 1.82.8 добавляет более агрессивную функцию, устанавливая файл .pth с именем litellm_init.pth в окружение Python. Поскольку Python автоматически обрабатывает все .pth-файлы при запуске интерпретатора, вредоносный код будет выполняться при каждом запуске Python, даже если LiteLLM напрямую не используется.

После выполнения полезная нагрузка в итоге разворачивает вариант вредоносного ПО «TeamPCP Cloud Stealer», а также скрипт для закрепления в системе. Анализ показывает, что полезная нагрузка содержит практически ту же логику кражи учетных данных, что и в атаке на цепочку поставок Trivy.

В Endor Labs поясняют:

После срабатывания полезная нагрузка выполняет атаку в три этапа: собирает учетные данные (SSH-ключи, токены облачных сервисов, секреты Kubernetes, криптокошельки и файлы .env), пытается распространиться по Kubernetes-кластерам, разворачивая привилегированные поды на каждом узле, и устанавливает постоянный бэкдор через systemd, который опрашивает систему на наличие дополнительных бинарных файлов.

Похищенные данные шифруются и отправляются на домен, контролируемый злоумышленниками.

Код инфостилера для кражи учетных данных с заражённых устройств. Источник: BleepingComputer

Инфостилер собирает широкий спектр учетных данных и секретов аутентификации, включая:

  • Сбор информации о системе путем выполнения команд hostname, pwd, whoami, uname -a, ip addr и printenv.
  • SSH-ключи и конфигурационные файлы
  • Облачные учетные данные для AWS, GCP и Azure
  • Токены сервисных аккаунтов Kubernetes и секреты кластеров
  • Файлы окружения, такие как различные варианты .env
  • Учетные данные и конфигурационные файлы баз данных
  • Приватные TLS-ключи и секреты CI/CD
  • Данные криптовалютных кошельков

Полезная нагрузка инфостилера также включает дополнительный скрипт, закодированный в base64, который устанавливается как пользовательский сервис systemd под видом «System Telemetry Service». Этот сервис периодически обращается к удаленному серверу по адресу checkmarx[.]zone, чтобы загружать и выполнять дополнительные вредоносные компоненты.

Установка постоянного бэкдора в системе. Источник: BleepingComputer

Похищенные данные упаковываются в зашифрованный архив с именем tpcp.tar.gz и отправляются на инфраструктуру, контролируемую злоумышленниками, по адресу models.litellm[.]cloud, где атакующие получают к ним доступ.

Экспильтрация похищенных данных, сохранённых в архиве tpcp.tar.gz. Источник: BleepingComputer

Требуется незамедлительно сменить скомпрометированные учетные данные

Обе вредоносные версии LiteLLM были удалены из PyPI, и теперь последней безопасной версией является 1.82.6.

Организациям, использующим LiteLLM, настоятельно рекомендуется немедленно:

  • Проверить наличие установленных версий 1.82.7 или 1.82.8
  • Немедленно заменить все секреты, токены и учетные данные, используемые или обнаруженные в коде на затронутых устройствах
  • Найти признаки закрепления в системе, такие как ~/.config/sysmon/sysmon.py и связанные сервисы systemd
  • Проверить системы на наличие подозрительных файлов, например /tmp/pglog и /tmp/.pg_state
  • Просмотреть кластеры Kubernetes на предмет несанкционированных подов в пространстве имен kube-system
  • Отслеживать исходящий трафик на известные домены злоумышленников

Если есть подозрение на компрометацию, все учетные данные на затронутых системах следует считать скомпрометированными и немедленно заменить.

Исследователи сообщают, что хотя смена секретов — сложная задача, это один из наиболее эффективных способов предотвратить каскадные атаки на цепочки поставок.

© . По материалам Bleepingcomputer
Комментарии и отзывы

Нашли ошибку?

Новое на сайте