Исследователи Glow Labs описали паттерн MCPhantom: AI-агенты для кода в 98% прослеженных сессий, когда их просят подключить MCP-сервер, устанавливают архивные пакеты @modelcontextprotocol из обучающих данных модели вместо актуальных официальных серверов. В этих заброшенных серверах найдено четыре уязвимости высокой критичности, включая удалённое исполнение кода, а исправления для них выпускать не будут. С 10 июля 2025 года такие пакеты скачали с npm 17,3 млн раз, и для стандартных средств защиты агентская установка остаётся невидимой.
!image(2).png)


Что произошло
Glow Labs опубликовала разбор паттерна, получившего название MCPhantom. Авторы проследили, как AI-агенты для кода — Claude Code, Cursor, Codex CLI, Claude Cowork и Claude Chat — выполняют запрос на подключение MCP-сервера: в 98% прослеженных сессий агенты выбирали устаревшие архивные пакеты @modelcontextprotocol, а не актуальные официальные серверы соответствующих сервисов. В архивных серверах обнаружено четыре уязвимости высокой критичности; самая тяжёлая — RCE в server-puppeteer, которая через prompt injection позволяет запускать произвольные процессы на машине разработчика. Серверы были архивированы в мае 2025 года, поэтому патчей для этих проблем не выпустят. Масштаб уже сформированной инсталляционной базы: с 10 июля 2025 года устаревшие пакеты скачали с npm 17 352 267 раз, в том числе server-github — 5,27 млн скачиваний, server-postgres — 4,31 млн, server-slack — 3,20 млн; пять из них входят в топ-100 MCP-пакетов npm.
Контекст
MCP (Model Context Protocol) — открытый протокол, через который AI-агенты подключаются к внешним инструментам и сервисам: репозиториям кода, базам данных, мессенджерам. Пакеты @modelcontextprotocol/server-* изначально были референсными серверами от Anthropic; позднее владельцы сервисов выпустили собственные официальные серверы, а референсные были архивированы и остались в реестре npm. Проблема в том, что агент резолвит имя MCP-сервера не сверкой с живым реестром, а по памяти: правдоподобное объяснение наблюдаемому выбору — приоритет чаще встречавшихся в обучающем корпусе имён, поэтому модель воспроизводит из весов именно старые названия пакетов. Для пользователя это выглядит как штатное подключение интеграции: агент сам находит пакет и соединяет его, ничего не сообщая о статусе и поддерживаемости.
Почему это важно для индустрии
Для индустрии MCPhantom — не баг одного harness'а, а класс отказа на уровне самой модели: агент воспроизводит устаревшие имена пакетов из обучающих данных, и установка MCP-сервера агентом превращается в неаудируемый путь исполнения кода внутри компании. Слепое пятно при этом системное: серверы запускаются через npx внутри Node-процесса и не попадают в манифесты зависимостей, поэтому EDR, SCA и инвентаризация ПО такой канал не видят, а стандартная телеметрия не годится для измерения проблемы — собрать данные можно только через pre-execution hooks. Материал очерчивает направления ответа: pre-execution hooks в harness'ах, политика «один официальный MCP-сервер на сервис» и проверка статуса депрекации npm при одобрении новых серверов. Для строителей это ранний сигнал новой продуктовой категории — безопасности агентных supply chain: уязвимая инсталляционная база уже существует, а сканеров MCP-конфигов, линтеров конфигураций и SDK для проверки пакетов перед исполнением пока нет; вероятны первые eval'ы на выбор агентом актуальных пакетов и независимые репликации исследования.
Почему это важно для пользователей
Если вы пользуетесь Claude Code, Cursor, Codex CLI или другими агентами с MCP, единственная доступная сейчас мера — ручной аудит конфигураций: открыть свои MCP-конфиги, найти ссылки на @modelcontextprotocol/server-* и сверить их статус с реестром npm. Агент мог установить архивный пакет самостоятельно и без предупреждений — если это происходило, на хосте может уже работать уязвимый сервер. Такие записи стоит заменить на официальные серверы владельцев сервисов — например, официальный MCP-сервер GitHub вместо архивного референсного Anthropic. После проверки имеет смысл включить в security-процессы правило проверять статус депрекации npm при одобрении каждого нового MCP-сервера, а там, где harness это поддерживает, ограничить выбор агента allowlist'ом и pre-execution hooks.
Что пока неизвестно / ограничения
Ключевая метрика — 98% прослеженных сессий — подана как установленный факт, но методология в открытых материалах отсутствует: неизвестны объём выборки в сессиях, её структура (реальная телеметрия или синтетические тесты) и распределение агентов и промптов. До публикации методологии материал следует читать как vendor-отчёт Glow Labs, а не воспроизводимое исследование. Объяснение механизма частотой имён в обучающем корпусе правдоподобно, но эмпирически не проверено. Неизвестно и то, сколько реальных хостов сейчас выполняют архивные серверы: число загрузок с npm не эквивалентно числу работающих инсталляций.
Источники
- MCPhantom: AI Agents Installing Deprecated MCP Servers — Glow Labs
- AI coding agents are installing MCP servers that will never be patched — Help Net Security
- AI coding agents are installing abandoned MCP servers with known security issues — Hacker News
Автор
Look at AI, редакция
