CrowdSec: атака через TanStack привела к копированию 170 репозиториев

Французская компания CrowdSec сообщила, что 22 мая злоумышленник скопировал около 170 её приватных репозиториев на GitHub, воспользовавшись учётной записью недавно ушедшего сотрудника. Компания связывает инцидент с майской атакой на цепочку поставок TanStack: вредоносные версии npm-пакетов похищали данные для доступа с машин разработчиков.
Архив с исходным кодом появился на форуме 16 сентября. CrowdSec утверждает, что атакующий только скопировал код: доступа к инфраструктуре и базам данных не получил, а содержимое репозиториев не менял. Раскрытые учётные данные компания ротировала 16 и 17 сентября.
Как использовали доступ бывшего сотрудника
11 мая были опубликованы 84 вредоносные версии 42 npm-пакетов TanStack. Компрометация отслеживается как CVE-2026-45321. Согласно предупреждению TanStack, установка таких версий запускала код для кражи GitHub-токенов, SSH-ключей и облачных учётных данных.
По версии CrowdSec, через 11 дней после публикации пакетов злоумышленник применил GitHub OAuth-токен бывшего сотрудника. Его доступ к организации GitHub сохранили, чтобы он завершил часть работы. Учётную запись удалили из организации 25 мая — через три дня после копирования репозиториев.
Другие доступы сотрудника уже были отозваны, поэтому подозрительной активности в AWS-системах CrowdSec не обнаружила. Компания отмечает, что токен не оставил следов в доступных ей журналах GitHub и к моменту расследования уже не существовал. Поддержка GitHub, по словам CrowdSec, проследила историю токена и подтвердила связь с TanStack.
Что оказалось в опубликованном архиве
Утекли не исходники публичного Security Engine, а материалы из закрытых репозиториев: веб-консоль, скрипты и модели команды data science, сценарии автоматизации и алгоритм консенсуса для добавления IP-адресов в общий блок-лист. Код на момент публикации был почти четырёхмесячной давности и с тех пор существенно менялся, заявила компания.
Архив также раскрыл пороги алгоритма: например, сколько детектирований требуется для попадания IP-адреса в блок-лист. CrowdSec считает, что отравить список, то есть добиться блокировки безвредного адреса, по-прежнему нельзя: для этого потребовались бы десятки сигналов от доверенных движков в десятках независимых сетей.
В материалах были адреса электронной почты 83 пользователей CrowdSec и имена, адреса и инвестиционный контекст 51 потенциального инвестора из системы 2020 года. Компания намерена уведомить затронутых пользователей, инвесторов и органы власти. Единственным пригодным для использования секретом она назвала ключ AWS SNS, который позволял только публиковать сообщения в одной теме; попытка применить его 17 августа не получила развития.
Почему инцидент важен для команд разработки
Случай CrowdSec дополняет картину последствий компрометации TanStack: кража учётных данных сотрудников после атаки через TanStack показывает, что похищенные токены могут дать доступ к ограниченному набору внутренних репозиториев даже без проникновения в основную инфраструктуру.
После инцидента CrowdSec начала использовать защитное ПО на ноутбуках сотрудников, работающих с кодом или системами. Практический вывод для бизнеса: отзыв доступов при увольнении должен происходить без отсрочек, а токены, ключи и зависимости npm необходимо рассматривать как отдельные объекты постоянного контроля.

