По данным VentureBeat, 19 мая 2026 года аж 633 вредоносные версии npm-пакетов успешно прошли проверку Sigstore. И все потому, что у злоумышленников были валидные сертификаты, полученные через скомпрометированные аккаунты мейнтейнеров. Sigstore сработал как часы: проверил, что пакет собран в CI-среде, подтвердил валидный сертификат и записал все в лог прозрачности. Но вот что система не может определить, так это то, авторизовал ли владелец учетной записи публикацию. И эта дыра превратила последнюю автоматизированную систему доверия в npm в камуфляж.

Днем ранее StepSecurity задокументировала атаку на расширение Nx Console VS Code. Это, на минуточку, популярный инструмент для разработчиков с более чем 2.2 миллионами установок. Версия 18.95.0 была опубликована 18 мая с использованием украденных учетных данных и продержалась в сети всего 40 минут. Но, по данным внутренней телеметрии Nx, за это время произошло около 6000 активаций (в основном через автообновление), по сравнению с всего лишь 28 официальными загрузками. Что же произошло? А произошло то, что вредоносный код собирал Claude Code configuration files, AWS ключи, GitHub токены, npm токены, содержимое 1Password vault и Kubernetes service account токены. Короче, слили все, что плохо лежало.
Кампания Mini Shai-Hulud, которую исследователи связывают с TeamPCP (группировкой, мотивированной финансово), ударила по npm registry 19 мая. Endor Labs обнаружила первую волну, когда два "спящих" пакета, jest-canvas-mock и size-sensor, опубликовали новые версии с обфусцированным 498KB Bun скриптом. Эти пакеты не обновлялись более трех лет, поэтому внезапная новая версия с raw GitHub commit hash зависимостями должна была стать сигналом тревоги. Но, видимо, не для всех.
К 02:06 UTC червь распространился по экосистеме визуализации данных @antv и десяткам пакетов без scope, включая echarts-for-react (~1.1 миллиона еженедельных загрузок). Socket увеличила общее количество скомпрометированных версий до 639 по 323 уникальным пакетам в этой волне. За весь жизненный цикл кампании Socket отследила 1055 вредоносных версий по 502 пакетам, охватывающим npm, PyPI и Composer.
StepSecurity подтвердила, что вредоносный код содержал полную интеграцию с Sigstore. То есть, злоумышленники не просто украли учетные данные, они могли подписывать и публиковать downstream npm пакеты с валидными attestations.
И это еще не все! Исследовательские группы из Endor Labs, Socket, StepSecurity, Adversa AI, Johns Hopkins, Microsoft MSRC и LayerX независимо доказали, что модель верификации developer tool сломана, и ни один вендор не аудирует все поверхности атак.
Семь поверхностей атак были скомпрометированы за 48 часов между 18 и 19 мая: подделка npm provenance, кража учетных данных расширения VS Code, автоматическое выполнение MCP сервера, prompt injection CI/CD агента, выполнение кода framework агента, утечка хранилища учетных данных IDE и утечка данных shadow AI.
Особенно весело с AI coding CLI. Adversa AI обнаружила, что Claude Code, Gemini CLI, Cursor CLI и Copilot CLI все автоматически запускают project-defined MCP серверы, как только разработчик принимает trust prompt. А все четыре по умолчанию предлагают "Yes" или "Trust". Один клик – и запускается unsandboxed процесс с полными привилегиями разработчика.
Этот MCP сервер имеет достаточно прав для чтения сохраненных секретов и исходного кода из других проектов. А на CI runners, использующих Claude Code GitHub Action в headless mode, диалог подтверждения вообще не отображается. Атака выполняется без какого-либо взаимодействия с пользователем.
Исследователи из Johns Hopkins доказали, что вредоносная инструкция в заголовке pull request на GitHub может заставить Claude Code Security Review опубликовать свой собственный API ключ в качестве комментария. Эта же атака сработала на Google’s Gemini CLI Action и GitHub’s Copilot Agent. Anthropic оценила уязвимость CVSS 9.4 (Critical) через свою HackerOne программу.
Microsoft MSRC раскрыла две критические уязвимости Semantic Kernel 7 мая. Одна направляет контролируемые злоумышленником поля vector store в вызов Python eval(), другая предоставляет метод загрузки файлов на стороне хоста в качестве вызываемой kernel function. Это означает, что один зараженный документ в vector store запускает процесс на хосте.
Исследователи LayerX обнаружили, что Cursor хранит API ключи и session токены в незащищенном хранилище. Это значит, что любое расширение браузера может получить доступ к учетным данным разработчика без elevated permissions.
Судя по всему, злоумышленники активно охотятся за этими учетными данными. The Verizon 2026 Data Breach Investigations Report показал, что 67% сотрудников получают доступ к AI сервисам из не-корпоративных аккаунтов на корпоративных устройствах. Shadow AI теперь является третьим по распространенности не-вредоносным действием инсайдеров в DLP datasets. Исходный код – это самый распространенный тип данных, отправляемых на неавторизованные AI платформы. Тот самый класс активов, на который была нацелена кампания npm worm.
The CrowdStrike 2026 Financial Services Threat Landscape Report документирует злоумышленников, активно охотящихся за типами учетных данных, которые собирают эти атаки. STARDUST CHOLLIMA утроила свой оперативный темп против финансовых организаций в четвертом квартале 2025 года. CrowdStrike задокументировала, что группа использует AI-сгенерированные recruiter personas на LinkedIn и Telegram, рассылает вредоносные coding challenges, которые выглядят как технические оценки, и проводит фейковые видеозвонки с синтетическими средами. Цель – GitHub PATs, npm токены, AWS ключи и CI/CD секреты. Shadow AI exposure – это дверь, через которую они проходят.
В общем, как всегда, расслабляться некогда. Будьте бдительны, проверяйте свои пакеты и не доверяйте всему, что видите. И да, похоже, пора пересмотреть подход к безопасности в мире разработки.