Что произошло#
Кампания TeamPCP перешла новую черту в конце мая 2026 года. По данным SANS Internet Storm Center, атака затронула сразу несколько экосистем пакетов: вредоносное расширение VS Code, связанное с внутренним взломом GitHub; троянские версии официального Python SDK Microsoft на PyPI; массовую волну npm в экосистеме @antv.
Смысл не в том, что отравление пакетов новое, а в том, что несколько упрощенных методов доверия не сработали одновременно. Значок проверенного издателя не защитил расширение Visual Studio Marketplace, официальный путь Microsoft не предотвратил вредоносный релиз на PyPI, визуальные сигналы пакетов и метки доверия не остановили пользователей за короткие окна публикации.
Путь вторжения через GitHub#
Наиболее серьезный случай связан с расширением Nx Console для VS Code, версия 18.95.0. GitHub CISO Alexis Wales сообщил, что оно стало источником утечки около 3800 внутренних репозиториев GitHub. Расширение публиковалось под nrwl.angular-console с отметкой verified-publisher и было доступно около 18 минут.
Автообновление сотрудника GitHub активировало вредоносное расширение, которое украло секреты разработчиков. Эти данные позволили перемещаться по внутреннему CI/CD GitHub. Жертвами с автообновлением оказались также OpenAI, Grafana Labs и Mistral AI.
Ключевой момент — цепочка учетных данных. SANS связывает креденшелы, собранные во время волны TanStack 11 мая, с публикацией Nx Console 18 мая, показывая использование одной компрометации для запуска следующей через доверенный путь.
Вредоносный PyPI-пакет Microsoft#
Второй случай — Python SDK Azure Durable Functions (durabletask) Microsoft. Троянские версии 1.4.1–1.4.3 были опубликованы 19 мая 2026 и позже удалены. SDK имеет около 417 000 загрузок в месяц.
Вредоносный дроппер внедрен в исходные файлы Python. Любой импорт этих версий мог выполнить код. Второй этап описан как крадущий креденшелы и червь, нацеленный на AWS, Azure, GCP, HashiCorp Vault, 1Password и Bitwarden. Независимое расследование также указывает на Linux-дисковый вайпер.
Команды, установившие durabletask версий 1.4.1–1.4.3 19 мая, должны считать среду скомпрометированной, включая CI runners, контейнеры, ноутбуки разработчиков и тестовые машины.
Волна npm @antv#
Третья волна затронула экосистему @antv. SANS сообщает о 639 вредоносных версиях 323 пакетов через скомпрометированный аккаунт atool. Упомянуты echarts-for-react (~1,1 млн загрузок в неделю) и size-sensor (~4,2 млн загрузок в неделю).
Payload — обфусцированный JavaScript (~499 КБ), собирающий более 20 типов креденшелов: GitHub и npm токены, AWS ключи, GCP и Azure токены. 42 пакета показывали фейковые Sigstore-значки.
Пользователи подверглись риску не только через редкие пакеты, но и через популярные, известные экосистемы, скомпрометированные аккаунты мейнтейнеров и вводящие в заблуждение индикаторы доверия.
Почему это важно#
Кампания бьет по «мягкому центру» разработки: креденшелы, автоматизация, implicit trust. Пакет может украсть токены, которые запускают следующий вредоносный релиз, достигая более доверенной аудитории. Значки издателей и официальные аккаунты не гарантируют безопасность релиза.
Что проверить#
- VS Code: версии Nx Console 18.95.0 на машинах с доступом к внутренним репозиториям и CI/CD.
- PyPI: логи зависимостей
durabletask1.4.1–1.4.3 за 19 мая. - npm: lockfiles, кэш артефактов и CI-логи @antv пакетов, включая
echarts-for-reactиsize-sensor. - Временные runners и контейнеры, которые могли подтянуть зависимости.
- Конфигурации автообновления IDE и локальные инструменты AI-агентов на предмет неожиданного доступа к креденшелам.
- При выявлении риска — ротация всех токенов и идентичностей машин, включая developer tokens, CI/CD и ключи облака.