ИБ-компания CrowdSec признала утечку исходного кода примерно из 170 приватных GitHub-репозиториев. Злоумышленник скопировал код ещё 22 мая 2026 года через учётную запись недавно ушедшего разработчика, но компания узнала об инциденте только 16 сентября, когда архив появился на хакерском форуме.
Согласно итоговому расследованию CrowdSec, скачивание заняло чуть больше девяти минут, с 05:52:29 до 06:01:33 UTC. Помимо примерно 170 закрытых репозиториев архив содержал свыше 130 общедоступных. Поэтому встречающееся число около 300 репозиториев технически верно, но значительная часть такого кода и раньше находилась в открытом доступе.
Главная проблема связана с приватной частью. В архив попали исходники SaaS-консоли CrowdSec, некоторые облачные процедуры AWS, коннекторы, скрипты автоматизации, модели обработки данных и внутренние компоненты системы репутации IP-адресов. Компания утверждает, что злоумышленник не получил доступ к инфраструктуре и базам данных, не менял исходный код и не вмешивался в CI/CD-конвейеры.
Следы внутри украденного архива помогли восстановить способ доступа. В конфигурации Git сохранился URL с начинавшимся на gho_ OAuth-токеном. GitHub позднее предоставил CrowdSec журналы активности за нужный временной интервал, после чего компания связала массовое клонирование с аккаунтом разработчика, который незадолго до инцидента покинул CrowdSec.
Большую часть корпоративных прав сотрудника к тому моменту уже отозвали, однако доступ к организации CrowdSec в GitHub временно оставили. Расставание прошло нормально, а разработчик хотел закончить оставшуюся работу. Аккаунт удалили из GitHub-организации 25 мая, через три дня после копирования репозиториев, когда CrowdSec ещё не знала об утечке.
По версии компании, OAuth-токен похитили с компьютера разработчика в результате майской атаки на цепочку поставок TanStack. 11 мая злоумышленники выпустили 84 вредоносные версии 42 пакетов @tanstack/* в npm. Встроенный код крал GitHub-токены, ключи SSH, учётные данные AWS и GCP, токены Kubernetes, Vault и npm, после чего отправлял найденные секреты наружу.
Сам TanStack подтвердил 84 версии и сообщил, что вредоносные публикации появились в течение нескольких минут 11 мая. Заражённые пакеты быстро вывели из обращения. CrowdSec при последующей проверке не нашла затронутых версий TanStack в истории собственных репозиториев, поэтому компания считает, что компрометация произошла на машине бывшего разработчика, а не внутри сборочной инфраструктуры CrowdSec.
Случай показывает неприятную особенность украденных токенов. Двухфакторная аутентификация, аппаратные ключи и пароль уже не помогают, если злоумышленник получил действующий токен с нужными правами. CrowdSec заявляет, что использовала 2FA, passkey и физические ключи безопасности, однако действующий OAuth-токен позволял читать закрытые репозитории без новой интерактивной авторизации.
Расследование выявило ещё один действовавший секрет в украденном коде. AWS-токен давал ограниченный доступ к сервису уведомлений SNS и позволял публиковать сообщения только в один топик. Кто-то проверял его права 17 августа, почти через три месяца после кражи репозиториев. CrowdSec утверждает, что дальнейшего продвижения по инфраструктуре через этот токен не произошло.
Итоговый отчёт также скорректировал первоначальную оценку последствий для персональных данных. Сначала CrowdSec заявляла, что имена и пользовательские данные не утекли, однако дальнейшая проверка обнаружила адреса электронной почты 83 пользователей, которые команда Data Science использовала для анализа работы продукта. В архив также попали имена, адреса электронной почты и информация об инвестиционном контексте 51 потенциального инвестора за 2020 год. Компания пообещала уведомить затронутых людей и компетентные органы.
При этом CrowdSec не обнаружила в архиве паролей клиентов, клиентских журналов или данных, позволяющих напрямую войти в пользовательские аккаунты. Компания также заявляет, что не нашла признаков изменения опубликованного программного обеспечения или компрометации производственной инфраструктуры. Подтверждённым последствием пока остаётся копирование приватного исходного кода и ограниченного набора сопутствующих данных.
После инцидента CrowdSec начала устанавливать EDR на рабочие станции сотрудников, взаимодействующих с кодом и инфраструктурой, усилила контроль пакетов и решила пересмотреть процедуру отключения учётных записей после увольнения. История с бывшим разработчиком оказалась особенно показательной. Формально доступ оставили ненадолго и по понятной причине, но девяти минут злоумышленнику хватило, чтобы вынести почти всю закрытую кодовую базу, а сама компания узнала об этом спустя 117 дней.