24 марта 2026 года на PyPI появились две новые версии популярного Python-пакета litellm — 1.82.7 и 1.82.8. Обновления выглядели рутинно. Ничто не указывало на то, что внутри спрятан трёхэтапный вредоносный пейлоад, способный красть учётные данные, захватывать Kubernetes-кластеры и закрепляться на хостах через systemd-сервисы. По данным компании Wiz (принадлежит Google), litellm установлен в 36% всех облачных сред. Масштаб потенциального поражения — колоссальный.

За атакой стоит группировка TeamPCP, которая ранее уже скомпрометировала инструменты Trivy и KICS. Собственно, именно через взлом CI/CD-воркфлоу Trivy злоумышленники получили возможность внедрить вредоносный код в официальные релизы litellm. Разработчиком и мейнтейнером litellm является компания Berri AI. Цепочка атаки выглядит почти иронично: инструмент безопасности Trivy послужил входной точкой для компрометации совершенно другого проекта. TeamPCP в своём Telegram-канале и через аккаунт @pcpcats в X (бывший Twitter) открыто глумились: «Эти компании были созданы, чтобы защищать ваши цепочки поставок, но они не могут защитить даже свои собственные... состояние современных исследований в области безопасности — это шутка».
Технически атака реализована в три стадии. В версии 1.82.7 вредоносный код встроен напрямую в файл
На втором этапе происходит сбор и кража данных. Пейлоад целенаправленно ищет SSH-ключи, облачные учётные данные, секреты Kubernetes, криптовалютные кошельки и файлы
Третий этап — латеральное перемещение и закрепление. Используя токен сервисного аккаунта Kubernetes, малварь перечисляет ноды кластера и разворачивает на каждой из них привилегированные поды. Эти поды выполняют
Группа TeamPCP заявляет о партнёрстве с известной вымогательской группировкой LAPSUS$. Лидер TeamPCP, известный под псевдонимом «DMT», объявил об уходе из-за выгорания, но группа продолжает работать. Их стратегию они сами называют «эффектом снежного кома»: учётные данные из одного взлома (Trivy) используются для следующего (litellm), а тот, в свою очередь, бьёт по десяткам тысяч нижестоящих сред. Цель — украсть «терабайты коммерческих секретов».
Бен Рид из Wiz прокомментировал ситуацию так: «Мы наблюдаем опасное сближение между атакующими цепочки поставок и известными группами вымогателей вроде LAPSUS$». Галь Нагли, тоже из Wiz, высказался жёстче: «Цепочка поставок с открытым исходным кодом схлопывается сама в себя... Мы застряли в замкнутом круге».
Под угрозой оказались не только пользователи litellm. Скомпрометированы были платформы PyPI, GitHub Actions, Docker Hub, npm и Open VSX. Python Packaging Authority (PyPA) была уведомлена. Но сам факт того, что атака распространилась через официальные каналы дистрибуции, ставит неприятные вопросы о доверии к пакетным репозиториям в целом.
Командам безопасности рекомендуется немедленно проверить, не установлены ли версии 1.82.7 или 1.82.8, и откатиться на чистые релизы. Все учётные данные — переменные окружения, конфигурационные файлы — на скомпрометированных системах подлежат ротации. Поголовной. Затронутые хосты нужно изолировать и проверить на наличие подозрительных Kubernetes-подов. В сетевых логах следует искать исходящий трафик к
Вся эта история — наглядная демонстрация того, насколько хрупка экосистема, в которой один взломанный инструмент безопасности способен каскадом обрушить доверие к тысячам зависимых проектов. TeamPCP не изобрели ничего нового. Они просто воспользовались тем, что индустрия давно знала, но предпочитала игнорировать.

Изображение носит иллюстративный характер
За атакой стоит группировка TeamPCP, которая ранее уже скомпрометировала инструменты Trivy и KICS. Собственно, именно через взлом CI/CD-воркфлоу Trivy злоумышленники получили возможность внедрить вредоносный код в официальные релизы litellm. Разработчиком и мейнтейнером litellm является компания Berri AI. Цепочка атаки выглядит почти иронично: инструмент безопасности Trivy послужил входной точкой для компрометации совершенно другого проекта. TeamPCP в своём Telegram-канале и через аккаунт @pcpcats в X (бывший Twitter) открыто глумились: «Эти компании были созданы, чтобы защищать ваши цепочки поставок, но они не могут защитить даже свои собственные... состояние современных исследований в области безопасности — это шутка».
Технически атака реализована в три стадии. В версии 1.82.7 вредоносный код встроен напрямую в файл
litellm/proxy/proxy_server.py и срабатывает при импорте модуля — никакого взаимодействия с пользователем не нужно. Версия 1.82.8 пошла дальше. В корень wheel-пакета добавлен файл litellm_init.pth, который обрабатывается Python'овским site.py автоматически при запуске любого Python-процесса в окружении. Через subprocess.Popen пейлоад стартует фоновым отвязанным процессом. Исследователи из JFrog и Endor Labs (в частности, аналитик Киран Радж) описали вторую версию как «более агрессивную». На втором этапе происходит сбор и кража данных. Пейлоад целенаправленно ищет SSH-ключи, облачные учётные данные, секреты Kubernetes, криптовалютные кошельки и файлы
.env. Всё собранное пакуется в зашифрованный архив с именем «tpcp.tar.gz» и отправляется HTTPS POST-запросом на домен models.litellm[.]cloud. Название архива — прямая отсылка к аббревиатуре группировки. Третий этап — латеральное перемещение и закрепление. Используя токен сервисного аккаунта Kubernetes, малварь перечисляет ноды кластера и разворачивает на каждой из них привилегированные поды. Эти поды выполняют
chroot в файловую систему хоста. Для персистентности устанавливается systemd user-сервис под именем sysmon.service, который запускает Python-скрипт по пути ~/.config/sysmon/sysmon.py. Скрипт каждые 50 минут обращается к адресу checkmarx[.]zone/raw за бинарниками следующей стадии. Любопытная деталь: если полученный URL содержит youtube[.]com, выполнение прерывается. Это своего рода «выключатель» — kill switch. Группа TeamPCP заявляет о партнёрстве с известной вымогательской группировкой LAPSUS$. Лидер TeamPCP, известный под псевдонимом «DMT», объявил об уходе из-за выгорания, но группа продолжает работать. Их стратегию они сами называют «эффектом снежного кома»: учётные данные из одного взлома (Trivy) используются для следующего (litellm), а тот, в свою очередь, бьёт по десяткам тысяч нижестоящих сред. Цель — украсть «терабайты коммерческих секретов».
Бен Рид из Wiz прокомментировал ситуацию так: «Мы наблюдаем опасное сближение между атакующими цепочки поставок и известными группами вымогателей вроде LAPSUS$». Галь Нагли, тоже из Wiz, высказался жёстче: «Цепочка поставок с открытым исходным кодом схлопывается сама в себя... Мы застряли в замкнутом круге».
Под угрозой оказались не только пользователи litellm. Скомпрометированы были платформы PyPI, GitHub Actions, Docker Hub, npm и Open VSX. Python Packaging Authority (PyPA) была уведомлена. Но сам факт того, что атака распространилась через официальные каналы дистрибуции, ставит неприятные вопросы о доверии к пакетным репозиториям в целом.
Командам безопасности рекомендуется немедленно проверить, не установлены ли версии 1.82.7 или 1.82.8, и откатиться на чистые релизы. Все учётные данные — переменные окружения, конфигурационные файлы — на скомпрометированных системах подлежат ротации. Поголовной. Затронутые хосты нужно изолировать и проверить на наличие подозрительных Kubernetes-подов. В сетевых логах следует искать исходящий трафик к
models.litellm[.]cloud и checkmarx[.]zone. Сервис sysmon.service и связанные с ним файлы нужно удалить. И отдельно: стоит провести аудит всех CI/CD-пайплайнов, которые использовали Trivy или KICS в период компрометации. Вся эта история — наглядная демонстрация того, насколько хрупка экосистема, в которой один взломанный инструмент безопасности способен каскадом обрушить доверие к тысячам зависимых проектов. TeamPCP не изобрели ничего нового. Они просто воспользовались тем, что индустрия давно знала, но предпочитала игнорировать.