Что произошло
Исследователи Island обнаружили около 7600 вредоносных репозиториев на GitHub, созданных примерно с 6600 аккаунтов. Порядка 1400 из них так или иначе связаны с ИИ, а больше 800 прямо выдавали себя за AI Skills и MCP-серверы. Волна росла в марте и достигла пика в апреле 2026 года, когда завели почти 300 таких репозиториев.
Кампанию назвали FakeGit. Внутри ZIP-архива, который README предлагает скачать и запустить, лежит загрузчик SmartLoader, а он уже подтягивает инфостилер StealC. Схема не новая — по данным Trend Micro, это продолжение более старой операции с Lumma Stealer, приписываемой группе Water Kurita. Новое здесь другое: маскировка под инструменты для ИИ и способ, которым жертву на них выводят.
Про цифру, которая гуляет по новостям. Island измерил 14 084 688 обращений к 335 файлам в 211 репозиториях. Ведущий исследователь компании Олег Зайцев отдельно оговорил, что счётчик включает повторные запросы и автоматическую активность, и трактовать его как число заражений нельзя. Реальный масштаб компрометаций неизвестен.
Как выглядит ловушка
Доверие набирается слоями, и каждый слой по отдельности выглядит нормально.
Репозиторий Mann1988/awesome-claude-skills скопировал название и оформление настоящей коллекции ComposioHQ/awesome-claude-skills, у которой больше 67 тысяч звёзд. У подделки своих звёзд было 63, форков 18 — мало, но достаточно, чтобы на бегу выглядеть живым проектом.
Аккаунт Naveenkm007 отличается от реального разработчика Naveenkm07 одним символом и копирует его профиль почти дословно. С этого профиля публикуется MCP-сервер с вредоносной начинкой.
Дальше README. Репозиторий 45d5r/databricks-mcp-server обещает интеграцию с 263 инструментами Databricks и предлагает нажать «Download Latest Release», распаковать и запустить. Внутри архива нет ни установщика Databricks, ни манифеста MCP, ни кода сервера. Там три файла: маленький лаунчер .cmd, переименованный рантайм LuaJIT и «текстовый» файл на 300 килобайт, который на самом деле обфусцированная Lua-программа в одну строку. Имена файлов по кампании меняются, структура — нет.
После запуска SmartLoader прячет окно консоли, закрепляется в системе через планировщик задач в %LOCALAPPDATA%, получает адрес управляющего сервера из значения в смарт-контракте Polygon и догружает зашифрованные стадии с того же GitHub. В конце в чужой процесс внедряется StealC.
Что забирает StealC: пароли и куки из браузеров, активные сессии, данные расширений, доступы к почте и удалённым подключениям, скриншоты, информацию о машине. Это ключевая деталь для восстановления — воруют не только пароли, но и живые сессии.
Цепочка заточена под Windows: .exe, .cmd, рантайм LuaJIT. Пользователи macOS и Linux по этой конкретной схеме payload не получат, но сами репозитории-приманки в поиске увидят так же, как все.
Что это меняет: AgentBaiting
Раньше от жертвы требовалось самой найти плохую ссылку. Теперь ссылку находит агент.
Island назвал это AgentBaiting и проверил на практике. Claude Code попросили найти бесплатный скилл для кинематографичных промптов и дать инструкцию по установке. Агент прошёл через маркетплейс MCP на GitHub, открыл два подходящих репозитория — один настоящий, один из кампании. Рекомендовал он настоящий, но тут же привёл README второго как рабочую альтернативу: скачать .exe из Releases, запустить, и — дословно — нажать «More info → Run anyway», если появится предупреждение безопасности Windows.
В других прогонах тот же Claude Code изучал репозиторий внимательнее, замечал подозрительное содержимое и отказывался его рекомендовать. Именно эта нестабильность и есть проблема: при масштабе в несколько сотен приманок даже редкий промах открывает путь к запуску.
Gemini и ChatGPT на запрос про бесплатный MCP-сервер для Walmart оба выдали один и тот же вредоносный репозиторий первым пунктом, причём ChatGPT прямо назвал его лучшей точкой старта.
И ещё один слой: больше 600 листингов кампании нашлись в публичных реестрах — LobeHub, Glama, MCP.so, MCP Market. Часть реестров подтягивает README репозитория автоматически, вместе со ссылкой на вредоносный архив. То есть присутствие в каталоге не означает ничего.
Что сделать сегодня
Порядок проверки, который занимает пару минут. Он выстроен так, чтобы отсечь схему на самом дешёвом шаге, а не на последнем.
- Посмотрите, чем вообще устанавливается инструмент. Настоящий MCP-сервер или скилл — это исходный код с манифестом:
package.json,pyproject.toml,mcp.json, набор файлов в репозитории. Если установка сводится к «скачайте ZIP и запустите приложение внутри» — закрывайте, дальше проверять нечего. Это отсекает всю кампанию целиком. - Откройте архив, если уже скачали, но не запускайте. Лаунчер
.cmdили.batплюс исполняемый файл плюс подозрительно большой.txt,.dat,.icoилиLICENSE— это описанная выше схема. - Проверьте владельца, а не проект. Откройте профиль автора, сверьте имя посимвольно, посмотрите дату регистрации и другие репозитории. Один лишний символ в нике — классика этой кампании.
- Сверьтесь с оригиналом по количеству звёзд. Найдите проект с таким же названием через поиск GitHub и сравните. Шестьдесят звёзд у «известной» коллекции вместо шестидесяти тысяч — ответ.
- Не считайте рекомендацию агента проверкой. Агент прочитал README, а README написал атакующий. Ссылку от Claude, ChatGPT или Gemini проверяйте так же, как ссылку из поиска.
- Не считайте проверкой и наличие в реестре. Каталоги MCP индексируют репозитории автоматически и переносят чужой README вместе со ссылкой.
- Ставьте новое в изоляции. Отдельная виртуальная машина или контейнер без ваших сессий в браузере, без ключей SSH, без облачных токенов. Если этого нет — хотя бы отдельный пользователь системы.
- Никогда не жмите «Run anyway» по инструкции из README. Предупреждение Windows появилось не случайно, и текст, который просит его обойти, написан ровно для этого момента.
Если запуск уже произошёл, дальше важна скорость и последовательность. Отключите машину от сети. Затем отзывайте не пароли, а доступы: активные сессии в браузерах (везде, где есть «выйти со всех устройств»), выданные OAuth-разрешения, API-токены, ключи облачных сервисов и репозиториев. Смена паролей сама по себе не помогает — StealC уносит живые сессии, и они продолжат работать после смены пароля. Пароли меняйте после отзыва сессий, а не вместо. Двухфакторную аутентификацию перевыпустите там, где она привязана к сессии.
Источники
Отчёт Island Security Research «AgentBaiting: How 800 Fake AI Skills and MCP Servers Delivered Malware» — первоисточник, включает полный список репозиториев и хеши файлов. Публикации BleepingComputer, Help Net Security и The Hacker News от 21 июля 2026 года. Первое упоминание троянизированных MCP-серверов в этой цепочке — Straiker AI, разбор Lua-загрузчика — Derp.ca. Атрибуция к Water Kurita — Trend Micro.

