27 марта 2026 года в промежутке между 03:51 и 10:13 UTC на Python Package Index (PyPI) появились две вредоносные версии популярного пакета

Разработчики Telnyx оперативно отреагировали: несанкционированные версии были удалены, а сам проект на PyPI поставлен в карантин. Безопасной считается версия 4.87.0, к которой рекомендован откат. Но сам инцидент вскрыл целую цепочку компрометаций, тянущуюся минимум на несколько месяцев назад.
TeamPCP не занимается тайпосквоттингом — созданием пакетов с похожими названиями в надежде на опечатку разработчика. Их стратегия другая: они целят в легитимные, широко используемые пакеты с большой аудиторией. Причём выбирают инструменты, которые обычно работают с расширенными правами доступа в CI/CD-конвейерах — там, где лежат креденшалы, конфигурации, переменные окружения. До Telnyx группировка уже атаковала контейнерный сканер Trivy, инструмент проверки инфраструктуры KICS и библиотеку маршрутизации AI-моделей litellm.
Вредоносный код был внедрён в файл
На Windows схема была заточена под длительное присутствие. С C2-сервера загружался файл
Moshe Siman Tov Bustan из OX Security обратил внимание на эволюцию: если в атаке на litellm малварь встраивала пейлоад в Base64 прямо в код, то здесь переключились на удалённую загрузку. Это усложняет статический анализ и позволяет менять полезную нагрузку на лету. Специалисты из Socket подчеркнули, что разделение стратегий по операционным системам — персистентность на Windows и мгновенный сбор на Unix-системах — говорит о зрелости группировки и понимании того, где какие данные ценнее.
Помимо кражи данных, малварь умела распространяться латерально в Kubernetes-кластерах. Она злоупотребляла токенами сервисных аккаунтов Kubernetes и разворачивала привилегированный pod на каждом узле кластера, обеспечивая себе устойчивое закрепление.
Откуда TeamPCP вообще взяли токен для публикации на PyPI? Исследователи из Endor Labs — Kiran Raj и Rachana Misal — полагают, что токен
Индикаторы компрометации достаточно конкретны. На Windows стоит искать файл
Рекомендации для тех, кто мог пострадать: проверить
telnyx — 4.87.1 и 4.87.2. За шесть с небольшим часов любой разработчик, обновивший пакет, рисковал получить на свою машину полноценный стилер, замаскированный внутри аудиофайлов формата WAV. Ответственность за атаку несёт группировка TeamPCP, связанная с LAPSUS$ и начинающей вымогательской группой Vect. 
Изображение носит иллюстративный характер
Разработчики Telnyx оперативно отреагировали: несанкционированные версии были удалены, а сам проект на PyPI поставлен в карантин. Безопасной считается версия 4.87.0, к которой рекомендован откат. Но сам инцидент вскрыл целую цепочку компрометаций, тянущуюся минимум на несколько месяцев назад.
TeamPCP не занимается тайпосквоттингом — созданием пакетов с похожими названиями в надежде на опечатку разработчика. Их стратегия другая: они целят в легитимные, широко используемые пакеты с большой аудиторией. Причём выбирают инструменты, которые обычно работают с расширенными правами доступа в CI/CD-конвейерах — там, где лежат креденшалы, конфигурации, переменные окружения. До Telnyx группировка уже атаковала контейнерный сканер Trivy, инструмент проверки инфраструктуры KICS и библиотеку маршрутизации AI-моделей litellm.
Вредоносный код был внедрён в файл
telnyx/_client.py и срабатывал при импорте пакета. Дальше начиналось самое необычное: малварь скачивала с удалённого командного сервера XOR-обфусцированные WAV-файлы. Аудиостеганография — приём не новый, его ранее использовали в вайпере «kamikaze», распространявшемся через CanisterWorm и незащищённые Docker-инстансы. Но в контексте атаки на цепочку поставок PyPI это выглядит дерзко. На Windows схема была заточена под длительное присутствие. С C2-сервера загружался файл
hangup.wav, из которого извлекался исполняемый файл. Его сбрасывали в папку автозагрузки под именем msbuild.exe — при каждой перезагрузке или входе в систему стилер запускался заново. На Linux и macOS подход принципиально иной: никакой персистентности, чистый «хватай и беги». Скачивался файл ringtone.wav, из которого развёртывалась трёхэтапная атака — стеганографическая доставка, выполнение в памяти, зашифрованная эксфильтрация. Скрипт-коллектор работал в самоуничтожающемся временном каталоге и почти не оставлял криминалистических следов. Собранные данные отправлялись в виде архива tpcp.tar.gz. Moshe Siman Tov Bustan из OX Security обратил внимание на эволюцию: если в атаке на litellm малварь встраивала пейлоад в Base64 прямо в код, то здесь переключились на удалённую загрузку. Это усложняет статический анализ и позволяет менять полезную нагрузку на лету. Специалисты из Socket подчеркнули, что разделение стратегий по операционным системам — персистентность на Windows и мгновенный сбор на Unix-системах — говорит о зрелости группировки и понимании того, где какие данные ценнее.
Помимо кражи данных, малварь умела распространяться латерально в Kubernetes-кластерах. Она злоупотребляла токенами сервисных аккаунтов Kubernetes и разворачивала привилегированный pod на каждом узле кластера, обеспечивая себе устойчивое закрепление.
Откуда TeamPCP вообще взяли токен для публикации на PyPI? Исследователи из Endor Labs — Kiran Raj и Rachana Misal — полагают, что токен
PYPI_TOKEN был украден ещё во время компрометации litellm. Харвестер TeamPCP тогда собирал переменные окружения и файлы .env с систем, где работал litellm. Если какой-то CI-конвейер одновременно использовал litellm и имел доступ к токену Telnyx — цепочка замыкается. Хенрик Плейт, руководитель отдела исследований безопасности Endor Labs, объяснил The Hacker News: украденные креденшалы масштабируются — один успешный взлом даёт ключи к следующему. Индикаторы компрометации достаточно конкретны. На Windows стоит искать файл
msbuild.exe в папке автозагрузки. Общий для всех платформ C2-адрес — 83.142.209[.]203:8080, обмен идёт через HTTP POST. Специалисты Aikido, JFrog, SafeDep, StepSecurity и Snyk опубликовали собственные разборы инцидента. Компания Ossprey Security отдельно акцентировала внимание на технике стеганографии в аудиофайлах. Рекомендации для тех, кто мог пострадать: проверить
requirements.txt на наличие telnyx==4.87.1 или telnyx==4.87.2, откатиться на 4.87.0, немедленно ротировать все секреты и заблокировать IP командного сервера. Исследователи из Snyk также советуют пересмотреть, какие пакеты в ваших пайплайнах имеют повышенный доступ — именно такие инструменты TeamPCP выбирает следующей мишенью. Мейнтейнеры Telnyx продолжают расследование того, как именно были украдены публикационные креденшалы, и уже выпустили отдельное уведомление о безопасности.