22 апреля примерно в течение 90 минут в npm появилась вредоносная версия Bitwarden CLI. Версия 2026.4.0 содержала полезную нагрузку для кражи учетных данных, которая выполняла обфусцированный загрузчик и собирала токены AWS, Azure, GCP, GitHub и npm с любого компьютера разработчика, на котором выполнялась команда npm install. Злоумышленники получили доступ к пути публикации Bitwarden в npm через скомпрометированный GitHub Action, связанный с инцидентом в цепочке поставок Checkmarx, затронувшим на той неделе несколько других нижестоящих потребителей.
Примерно через девять дней Bitwarden выпустилаCVE-2026-42994 для этой версии с трояном. Защитники, использующие инструмент анализа состава программного обеспечения (software composition analysis), увидели его на своих панелях мониторинга. Инженеры по обнаружению начали писать правила. Инцидент получил описание, запись в ленте угроз и строку в отчете о показателях за следующий квартал.
Однако обратите внимание на то, что на самом деле делает CVE. Он никого не обязывает исправлять уязвимость. Уязвимость представляла собой 90-минутное окно, в течение которого был скомпрометирован конвейер публикации, и это окно закрылось. CVE — это ретроактивное уведомление. Это означает, что если вы выполнили npm install в течение этого окна, считайте свои учетные данные разработчика скомпрометированными. Это реагирование на инциденты, а не отслеживание уязвимостей.
Это система, функционирующая по стандартам 2026 года. Это далеко от того, для чего создавался CVE.
Смещение
CVE был запущен в 1999 году как идентификатор уязвимостей. Исходное определение было строгим: дефект в системе, нарушающий политику безопасности, с исправлением, которое защитники могут применить к известному диапазону версий. Heartbleed в OpenSSL 1.0.1f. Десериализационные уязвимости в Apache Struts. Установите исправление для версии, просканируйте для проверки, панель мониторинга становится зеленой.
MITRE и CNA почти сразу начали расширять рамки. Инцидент с SolarWinds в 2020 году получил CVE-2020-10148, но «уязвимость» представляла собой бэкдор, внедренный в подписанное обновление, а не дефект кода, написанный сопровождающим. node-ipc/peacenotwar в 2022 году получил CVE-2022-23812 за протестное ПО (protestware), которое удаляло файлы на основе геолокации. Исправление в обоих случаях заключалось в «удалении вредоносной версии», а не в патче для дефектного компонента. Идентификатор все еще работал, но он больше не выполнял ту работу, для которой был предназначен.
CVE теперь отслеживал инциденты, а не дефекты в коде.
Такие атаки, как s1ngularity и Shai-Hulud, нарушили это расширение. Самораспространяющийся червь npm, появившийся в сентябре 2025 года и возвращавшийся в эскалирующих вариантах в течение 2026 года, заразил сотни пакетов в экосистеме. Некоторые затронутые версии получили CVE, но большинство — нет. В консультативном отчете Red Hat о кампании признавалось очевидное: «из-за беспрецедентного числа затронутых организаций и лиц маловероятно, что всем заражениям пакетов будут присвоены идентификаторы CVE».
Интересно, что компрометация Bitwarden в конце апреля сама является вариантом Shai-Hulud, со строкой «Shai-Hulud: The Third Coming» встроенной во вредоносную полезную нагрузку. Он получил CVE, потому что это один идентифицируемый пакет с одной идентифицируемой вредоносной версией. Более 700 пакетов из предыдущих волн той же кампании в основном не получили.
Поставщики также тихо исправляют проблемы без раскрытия информации. Отчет исследователя закрывается как информационный, проблема выпускается в следующем релизе как «улучшение укрепления» или, что еще лучше, «улучшение безопасности» (а не исправление). CVE не запрашивается. Иногда это разумно — не всегда. В любом случае, инструменты защитников этого не видят, а ИИ усугубляет ситуацию.
Что агенты делают со всем этим
Категория, которая наиболее явно ломает фреймворк, — это та, для которой изначально нет схемы идентификации.
Навыки (Skills), серверы MCP и более широкое окружение вокруг агентов ИИ обладают несколькими свойствами, для которых фреймворк CVE никогда не предназначался. Они мутируют во время выполнения. Рабочая полезная нагрузка часто представляет собой инструкцию на естественном языке, которую агент считывает и выполняет, а это означает, что агентские активы не всегда имеют стабильные идентификаторы. Их загружают из публичных реестров, но также делятся через Slack или форкают из репозитория, который выглядел официальным три месяца назад. Вредоносное воздействие не соответствует ни одной существующей категории слабостей.
Например, навык под названием derp в реестре skills.sh иллюстрирует проблему. Он не содержит традиционных индикаторов вредоносного ПО. Нет сетевых вызовов, блобов base64 или путей к учетным данным. SKILL.md предписывает Claude намеренно генерировать сломанный код, а затем предлагать сломанные исправления в цикле, скрывая при этом тот факт, что он это делает. CVE не может на это указать. Нет переполнения памяти, обхода аутентификации или вектора CVSS. Однако вред реален — потраченные впустую часы, подорванное доверие к агенту, завышенный счет за вычисления/токены — но он поведенческий. Сканер, ищущий вредоносные шаблоны, его не обнаружит.
derp мал, но структурно идентичные атаки — нет. В моем исследовании в Manifold Security в апреле этого года мы обнаружили кампанию ClawSwarm, которая каталогизирует 30 навыков, опубликованных одним автором ClawHub. Некоторые из них включают утилиты, такие как Cron Helper (903 загрузки) и Agent Security (685 загрузок), которые незаметно зачисляют ИИ-агента пользователя в стороннюю сеть. Установите один, и агент зарегистрируется на внешнем сервере, сообщит о своих возможностях, сгенерирует криптокошелек Hedera, сохранит учетные данные на диске и будет опрашивать задачи каждые четыре часа. Навыки работают. Они также вербуют агента в чужую экономику без ведома оператора.
Какое для этого CVE? Эти навыки не являются вредоносным ПО в каком-либо традиционном смысле. HTTPS-вызовы задокументированы. Генерация кошелька использует законный SDK. Нет шелл-кода для пометки или известного C2 для блокировки. Даже если реестр удалит кампанию, та же самая схема может появиться под другим автором с другим именем файла через неделю. Артефактно-ориентированная модель не имеет за что зацепиться.
Поставщики передовых моделей сталкиваются с вариацией этой проблемы. Они нумеруют свои релизы (Sonnet 4.6, Opus 4.7, GPT-5.1 и так далее), но исправления безопасности не всегда четко указываются в примечаниях к выпуску. Уязвимость, которая работала на вчерашней модели и не работает на сегодняшней, включается в обновление возможностей или новые «меры защиты» без указания дельты безопасности, без уведомления и часто без увеличения номера версии вообще, когда изменение касается системного промпта или классификатора, а не самой модели.
Недавний академический обзор 295 GitHub Security Advisories, ссылающихся на компоненты, связанные с LLM, показал, что существующая метадата CWE фиксирует дефекты на уровне кода, но систематически недооценивает подверженность, опосредованную моделью (model-mediated exposure), — случаи, когда уязвимость срабатывает или усиливается посредством рассуждений модели, а не дефекта в окружающем коде. Как выразились авторы: «Текущая метадата GHSA не содержит структурированных индикаторов участия LLM, что требует ручной классификации для выявления шаблонов подверженности, опосредованной моделью».
CVE-2025-68664 в LangChain Core, дефект десериализации, который может быть вызван метаданными, зависящими от промпта, является редким случаем, который попал в систему, но большинство — нет. Техника внедрения промптов (prompt injection), позволяющая злоумышленнику эксфильтровать выходные данные вызовов инструментов из агента, может быть исправлена в следующем контрольном пункте модели, появиться в исследовательской статье через шесть месяцев и никогда не отобразиться ни на одной панели мониторинга.
Обе являются эксплуатируемыми, но отслеживается только одна.
Как выглядит работоспособный сигнальный уровень
CVE по-прежнему выполняет свою работу для того, для чего он был создан. Но предположения, лежащие в основе фреймворка — стабильная идентификация, фиксированный контент, скоординированное раскрытие информации, уведомления от поставщиков — не работают для значительной и растущей части поверхности атак агентов.
Работоспособный сигнальный уровень для этой категории, вероятно, потребует три вещи, которых не хватает в текущей системе.
- Поведенческие идентификаторы вместо идентификаторов артефактов: Если навык, предписывающий агенту эксфильтровать переменные среды, удаляется, а та же инструкция появляется завтра под другим автором с другим именем файла, соответствующим идентификатором является поведение, а не SHA. Создание отпечатков того, что агент на самом деле делает — какие данные куда перемещаются, с какими внешними службами он регистрируется, какие вызовы инструментов он делает от имени пользователя — дает вам нечто долговечное для отслеживания, даже когда исходный артефакт эфемерный.
- Прозрачность реестров для снятия с публикации: Когда npm удаляет пакет, остается бумажный след. Когда реестр навыков удаляет издателя, часто этого следа нет. Экосистема будет развиваться в этом направлении, но корпоративные потребители должны добиваться этого уже сейчас, а не ждать.
- Ответственное раскрытие информации, но для поставщиков: Нам нужен честный отчет от поставщиков о том, что они исправляют и выпускают молча, включая поставщиков моделей. Я не оптимистичен в краткосрочной перспективе. Коммерческие стимулы направлены в неверную сторону, и давление со стороны клиентов (а также охотников за ошибками) имеет тенденцию двигать поставщиков в этом направлении.
Панель мониторинга, которая у вас есть, была создана для угроз, которые у вас были
Система отслеживания уязвимостей была построена вокруг артефактно-ориентированной модели. Она по-прежнему вносит свой вклад в борьбу с угрозами, для которых она была разработана. CVE Bitwarden появился на панелях мониторинга по всей отрасли. Следующий тоже появится.
Что не появится, так это навык, извлеченный из реестра без уведомления. Или контрольная точка модели, которая незаметно сопротивляется внедрению промптов, которому она раньше поддавалась. Или ваш агент, уже зачисленный в чужую сеть, потому что SKILL.md ему так приказал.
Если вы управляете программой безопасности в 2026 году, ваша панель мониторинга становится все более неполной картиной. То, что вас погубит, не всегда отображается на ней. Знание того, что на самом деле отслеживают ваши инструменты и что они перестали отслеживать, — это то, с чего начинается работа.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Ax Sharma




