Минимум семь репозиториев с эксплойтами на GitHub оказались ловушкой: вместо безобидного тестового кода они тянули RAT ChocoPoC через PyPI-зависимости. Для тех, кто работает с уязвимостями каждый день, это неприятный, но очень показательный сигнал: вредоносные PoC-эксплойты теперь прячут не в самом exploit-файле, а в цепочке установки, куда многие до сих пор смотрят вполглаза.
Об этой кампании сообщает BleepingComputer со ссылкой на исследование Sekoia. По данным компании, после клонирования зараженного репозитория на машину подтягивался пакет frint, а уже во время установки он загружал еще одну зависимость, skytext. Внутри нее находилось скомпилированное нативное расширение Python: при запуске PoC оно автоматически расшифровывало дополнительный код, запускало загрузчик и стягивало финальную полезную нагрузку ChocoPoC из датасета Mapbox.
Здесь и лежит главное отличие схемы от старых трюков с поддельными эксплойтами. Обычно злоумышленники встраивают вредоносный код прямо в PoC, и внимательный исследователь хотя бы теоретически может заметить лишние вызовы, подозрительные URL или очевидный стилер. В случае с ChocoPoC сам эксплойт, как отмечают исследователи, мог оставаться рабочим и выглядеть вполне правдоподобно. Вредоносное поведение переносится в зависимости, которые внешне не обязаны вызывать подозрение. Для разработчика это означает простую вещь: даже если PoC делает именно то, что обещает, доверять его окружению по умолчанию уже нельзя.
Возможности у ChocoPoC вполне взрослые для RAT такого класса. Он умеет выполнять shell-команды и произвольный Python-код, загружать файлы и каталоги, собирать пароли браузеров, cookies, историю посещений и данные автозаполнения. Дополнительно малварь ищет текстовые файлы, Markdown-документацию и базы данных, снимает историю команд оболочки, собирает сетевую конфигурацию и список запущенных процессов. Для эксфильтрации тоже выбрана не самая очевидная инфраструктура: датасеты Mapbox использовались для вывода данных, а для крупных файлов, по данным Sekoia, применялся отдельный HTTP-сервер. Выглядит это как работа не ради эффектного демо, а ради тихой кражи того, что обычно лежит у исследователя под рукой: заметки, токены, локальные дампы, внутренние базы и черновики отчётов.
Список приманок тоже подобран с расчетом на тех, кто следит за актуальными CVE и быстро поднимает тестовые стенды. Sekoia обнаружила как минимум семь репозиториев, раздававших ChocoPoC под видом PoC для FortiWeb (CVE-2025-64446), React2Shell (CVE-2025-55182), MongoBleed (CVE-2025-14847), PAN-OS (CVE-2026-0257), Ivanti Sentry (CVE-2026-10520), Check Point VPN (CVE-2026-50751) и Joomla SP Page Builder (CVE-2026-48908). Иначе говоря, атакующие не делают ставку на одну экзотическую дыру: они садятся на поток вокруг заметных уязвимостей, где интерес сообщества гарантирован. Как только в инфополе появляется громкий баг, рядом почти автоматически вырастает и рынок фальшивых PoC.
Косвенно масштаб кампании показывает статистика по skytext. Исследователи зафиксировали 2400 загрузок этого пакета, причем в основном с Linux-систем. Пик пришелся на период после раскрытия популярной уязвимости, которая и сработала как наживка. Цифра не выглядит гигантской на фоне массовых supply chain-инцидентов, но для точечного удара по ресерчерам, пентестерам и менее опытным операторам этого более чем достаточно. В такой аудитории одна успешная установка стоит дороже десятков случайных заражений: на тестовой машине часто уже есть VPN-доступы, SSH-ключи, внутренние тикеты, PoC других команд и рабочие артефакты, которые в обычный офисный ноутбук не попадают.
У кампании, похоже, есть и история. До frint и skytext злоумышленники использовали пакеты slogsec и logcrypt.cryptography с очень похожим исходным кодом и тем же финальным пейлоадом. Кто именно стоит за операцией, Sekoia прямо не называет, но связывает несколько e-mail адресов GitHub-коммиттеров с другой активностью по троянизации PoC в конце 2025 года. Дополнительная деталь, неприятная своей приземленностью: данные для двух адресов нашлись в утекших базах, а логин для третьего, как считают исследователи, с высокой вероятностью произошел из компрометации через инфостилер. Отсюда и оценка Sekoia: атакующие, скорее всего, активно использовали уже взломанные аккаунты для публикации вредоносных пакетов на PyPI и репозиториев с PoC.
Для рынка это плохая новость не потому, что появился очередной RAT. RAT-ов хватает. Проблема в том, что supply chain-атака здесь подстроена под поведение самой защитной индустрии. Исследователи, red team, bug bounty-охотники и внутренние AppSec-команды по роду работы постоянно запускают чужой код и торопятся проверить свежий эксплойт раньше конкурентов. На этой скорости и ломается базовая гигиена: репозиторий выглядит знакомо, CVE звучит громко, зависимости ставятся автоматически, а isolated environment «сделаем потом». Именно поэтому вредоносные PoC-эксплойты становятся удобным инструментом против тех, кто вообще-то должен первым замечать подвох.
Практический вывод довольно скучный, но игнорировать его уже дорого. Любой PoC из GitHub, особенно под свежую уязвимость, нужно запускать только в изолированной среде и проверять не один файл с эксплойтом, а всю цепочку: requirements, setup-скрипты, бинарные расширения, сетевые обращения и пост-инсталляционные действия. Для компаний это отдельный повод пересмотреть, как устроены лаборатории для security research и кто именно имеет право тянуть зависимости из внешних репозиториев без зеркалирования и контроля. Когда вредоносные PoC-эксплойты приходят не в лоб, а через «почти нормальные» пакеты, вопрос уже не в том, появится ли следующая такая кампания, а в том, сколько команд по-прежнему считают sandbox избыточной роскошью.