Пакет под названием refbase-mcp, оформленный так, чтобы вписываться в соглашение Model Context Protocol, которое теперь используют агентные инструменты, был опубликован в npm с вредоносным кодом, получил 298 загрузок и примерно через полтора часа был удалён и заменён на security-заглушку.
Хронология по данным самого реестра
Версия 1.0.0 появилась 31 июля в 20:23:38 UTC. В 21:54:59 UTC её заменили на версию 0.0.1-security — 428-байтную placeholder-заглушку npm для хранения security-уведомлений. Это окно экспозиции длилось 92 минуты. advisory вышел в 22:00:13 UTC. Все три временные метки взяты из API реестра и advisory, а не из какого-либо пересказа.
Зачем было нужно такое название
Суффикс -mcp — это приманка. Агентные toolchain-пакеты MCP-серверов устанавливают с тем же уровнем доверия, что и любые другие зависимости, и это соглашение уже достаточно закрепилось, чтобы его было выгодно имитировать. Ничто в записи не доказывает, что пакет действительно работал как MCP-сервер: суффикс — это выбор названия, а не подтверждённая функциональность.
Пугающая фраза — это шаблон
В advisory сказано, что любую машину, где установлен пакет, "следует считать полностью скомпрометированной", а также что нужно сменить все секреты и ключи. Это стандартный шаблон npm для вредоносного ПО, применяемый ко всем удалениям такого рода. Анализ payload не публиковался, поэтому неизвестно, что именно делал пакет, — и выдавать шаблонную формулировку за вывод о конкретно этом пакете было бы неверно.
298 загрузок — это не 298 жертв
Динамика — 254 загрузки 31 июля, 44 — 1 августа, и ноль в каждый предыдущий день месяца — выглядит так, как выглядит совершенно новый пакет, когда его находят зеркала реестра, системы безопасности и CI-кэши. Считать это числом заражений — значит существенно завышать масштаб. Более узкое прочтение здесь полезнее: цикл удаления замкнулся за 92 минуты, а 92 минуты — это достаточно долго, чтобы пакет успела подхватить build-система.
