Абстрактная техническая иллюстрация на глубоком тёмно-синем фоне: светящийся янтарный силуэт ключа свисает слева на одной вертикальной нити, а тонкая горизонтальная нить тянется от него вправо к уходящей вдаль стене высоких матовых стеклянных панелей. Три панели светятся тёплым янтарным светом изнутри, остальные остаются стально-синими. Тонкая голубая дуга с небольшими штрихами поднимается из левого нижнего угла поперёк стены. Люди, логотипы и читаемый текст отсутствуют. Логотип OrcaRouter расположен на белой полосе в правом нижнем углу.
AI Safety Incidents

CrowdSec потеряла 170 приватных репозиториев за девять минут из-за пробела в процессе offboarding

Автор

Elias Hawthorne

Дата публикации

Новые модели · 20Все модели →
Бенчмарки: Artificial Analysis · обновляется ежедневно
Назад ко всем статьям

22 мая 2026 года в период с 05:52:29 по 06:01:33 UTC человек, работавший с IP-адреса в Торонто, Канада, использовал учетную запись GitHub разработчика, который только что покинул CrowdSec, чтобы скопировать около 170 приватных репозиториев этой французской компании по кибербезопасности. CrowdSec опубликовала эту хронологию в собственном отчете об инциденте 18 сентября 2026 года — дату, которую архив AI-инцидентов присваивает этой записи — после того, как архив ее исходного кода появился на киберпреступной торговой площадке pwnforum 16 сентября. Учетная запись все еще работала, потому что компания намеренно оставила доступ разработчика к GitHub открытым, чтобы он мог завершить некоторую работу. Ноутбук, с которого осуществлялся доступ, был заражен одиннадцатью днями ранее червем Mini Shai-Hulud, крадущим учетные данные, которого TeamPCP распространил через npm-пакеты TanStack. Эта запись составлена на основе документа, поданного 18 сентября 2026 года, а полный задокументированный набор инцидентов — каждая запись со своей степенью серьезности, уровнем уверенности, отметкой о спорности и источниками — находится в Orca AI Incident Archive, где эту запись можно прочитать рядом с другими случаями из цепочки поставок за тот же год.

Кража не ограничилась кодом. В отчёте CrowdSec также раскрыты адреса электронной почты 83 пользователей, взятые из внутреннего списка мониторинга в области data science и в основном представляющие собой аккаунты Gmail, а также имена, фамилии, адреса электронной почты и инвестиционный контекст 51 потенциального инвестора из 2020 года. На фоне примерно 150 000 пользователей 83 адреса — это малая доля; но не ноль. Генеральный директор Филипп Юмо приберёг личные извинения для инвесторов: «Утечка ваших имён и адресов электронной почты — это вопрос, который мы обсудим напрямую с вами и компетентными органами, и за это я лично извиняюсь».

Что на самом деле заняли девять минут

Dark navy HTML timeline card with a faint grid, kicked 'crowdsec · 22 may to 18 september 2026 · times as published' and headed 'The nine minutes, and the 117 days after'. Two columns of timestamped rows. Left, headed 'Upstream, then the copy': 11 May, 84 malicious versions across 42 TanStack npm packages ship the Mini Shai-Hulud credential harvester; 22 May 05:52:29, the copy window opens with a first fetch logged at 05:52:32.138 UTC; 22 May 06:01:33, the window closes with about 170 private repositories copied from an IP in Toronto, machine timezone UTC-4; 25 May, the former developer's account is removed from the GitHub organisation, three days after the copy. Right, headed 'Before disclosure, then discovery': 17 August, the exposed AWS SNS token is probed from 23.234.84.102 and reaches no further than a single topic; 16 September 17:45, an archive of CrowdSec source code is published on the pwnforum marketplace; 16 September 20:00, the Fuites Info team contacts CrowdSec and a crisis cell is stood up; 17 September, token rotation begins and GitHub support traces the token's lifecycle; 18 September, the full report discloses 83 user email addresses and the details of 51 potential investors from 2020. A highlighted band reads 'The account was left open on purpose so a departing developer could finish some work. It was revoked on 25 May, after the repositories were already gone.' A footer cites CrowdSec's analysis of 18 September 2026. The OrcaRouter logo sits in a white strip at the bottom right.

Записи Git, которые GitHub передал CrowdSec, начинаются в 05:52:32.138 UTC с fetch-запроса к одному из репозиториев компании, а активность заканчивается в 06:01:33. Цифра в архиве — около 170 приватных репозиториев — взята из этих данных Git. В своей публикации Humeau описывает утечку как «ограниченную исходным кодом CrowdSecurity, включая 130+ публичных репозиториев и множество приватных». DevOps.com, сообщивший об инциденте 24 сентября, оценил совокупное число публичных и приватных репозиториев примерно в 300 — больше, чем собственный показатель CrowdSec по приватным репозиториям, и оно не указано в отчете компании.

Содержимое представляло собой обычную мебель быстрорастущей SaaS-компании: исходный код веб-консоли, скрипты развертывания и автоматизации, а также скрипты и модели data science, лежащие в основе её аналитики. Самым чувствительным элементом CrowdSec называет «алгоритм консенсуса», который определяет, какие IP-адреса попадают в его блок-листы. Архитектура алгоритма уже была публичной, но его разнообразие и пороги обнаружения — нет, и теперь они известны. Humeau утверждает, что пороги — движущаяся цель и что управление консенсусом всё равно потребовало бы большого и дорогого парка серверов; компания говорит, что может их корректировать и следит за расхождениями.

Учётные данные — это та часть, которая могла обернуться гораздо хуже. «Мы были очень близки к тому, чтобы всё было чисто», — написал Юмо. Единственным пригодным к использованию секретом в дампе был токен AWS Simple Notification Service с областью действия, ограниченной публикацией в одной теме. Кто-то проверил его 17 августа 2026 с IP-адреса 23.234.84.102, вызвав GetCallerIdentity и ListTopics для тем dev и env, и дальше этого не продвинулся. Большинство других токенов и секретов в коде были отозваны или ротированы до утечки. CrowdSec заявляет, что к его инфраструктуре и базам данных доступа не было, и никакой код не был изменён в проекте с открытым исходным кодом, его приватном исходном коде или его сборочных конвейерах.

Dark navy HTML card headed 'What left the building', kicked 'the exposure, as crowdsec counted it'. Five tiles across the top. 170, private repositories copied in the nine-minute window per the Git activity GitHub returned, noted 22 May 2026 05:52 to 06:01 UTC. 130+, public repositories the CEO says were also in the leak alongside many private ones, with a note that DevOps.com puts the combined figure at about 300. 83, user email addresses mostly Gmail drawn from a data-science monitoring list, out of roughly 150,000 users. 51, potential investors from 2020 with names, addresses and investment context, described as the group the CEO apologised to personally. 1, usable credential in the dump, an AWS SNS token scoped to one topic, probed 17 August from 23.234.84.102. Four smaller tiles below read: console source, the SaaS web console not open-sourced and not intended to be; data-science scripts and models, of little use without the data that trains them; automation scripts, deployment, QA and Slack bots that the company calls no-risk; consensus thresholds, the diversity and detection limits that were not public before. A highlighted band reads 'No infrastructure, no databases, no code changes, CrowdSec's finding. The data-science scripts and models and the blocklist consensus thresholds went with the source.' A footer cites CrowdSec on 18 September 2026, Dark Reading on 22 September and DevOps.com on 24 September. The OrcaRouter logo sits in a white strip at the bottom right.

Почему аккаунт всё ещё работал

Недочёт при отключении доступа был небольшим и конкретным. К моменту ухода разработчика CrowdSec уже отозвала его остальные права доступа; аккаунт GitHub был оставлен активным, писал Юмо, потому что «мы расстались с нашим разработчиком по-хорошему, и он хотел завершить кое-какую работу». Аккаунт был удалён из организации GitHub 25 мая, через три дня после того, как репозитории уже были скопированы.

CrowdSec не могла увидеть кражу в тот момент, и причину стоит изложить точно. OAuth-токена не было ни в журнале аудита организации, ни в журнале аудита кого-либо из текущих участников, а к тому времени, когда кто-то начал искать, он уже не существовал: его создали, использовали, и срок его действия истёк, не оставив следа, который компания могла бы прочитать. GitHub хранит данные активности Git только в скользящем семидневном окне для организаций, не использующих корпоративный план, как отмечает сама CrowdSec. Прорыв произошёл благодаря команде поддержки GitHub, которая отследила полный жизненный цикл токена и предоставила данные активности Git за двухчасовое окно вокруг копирования. Так компания вышла на учётную запись бывшего сотрудника. Связь с TanStack выяснилась в ходе той же работы.

Утёкший архив нёс в себе собственные доказательства. Файл .github/.git/config внутри него фиксировал URL источника вида oauth2:gho_xxxxxxxxx@github.com, идентифицируя учётные данные как токен GitHub OAuth и соответствуя задокументированной методологии TeamPCP. CrowdSec сообщает, что проверила машины разработчиков на наличие вредоносных пакетов и не обнаружила ни одной из версий TanStack с бэкдором в собственных репозиториях — результат, который она описывает как неубедительный, а не оправдывающий.

Кто это сделал и насколько надёжна атрибуция

CrowdSec приписывает загрузку «одному из основателей BreachForum и участнику diencracked», при этом адрес участника указан как diencracked@cock.li, работа ведётся с IP-адреса в Торонто, а часовой пояс машины установлен на UTC-4. Компания добавляет собственную оговорку в том же предложении: «По крайней мере, именно это показывают данные Git». В отчёте Dark Reading от 22 сентября приводится та же атрибуция — основателю BreachForum и нику diencracked.

Исходная кампания задокументирована лучше, чем стоящие за ней личности. Пакеты TanStack были скомпрометированы через бэкдор 11 мая 2026 года, когда были опубликованы 84 вредоносные версии в 42 пакетах; The Hacker News фиксирует эту компрометацию как CVE-2026-45321 и ссылается на собственный advisory TanStack относительно полезной нагрузки для кражи учетных данных. В хронологии CrowdSec отмечается, что 22 мая, в тот же день, что и копия репозитория, TeamPCP — отслеживаемая CrowdSec как UNC6780 — взяла на себя ответственность за компрометацию репозиториев, принадлежащих Mistral AI.

Что установлено, а что — нет

Dark navy HTML card headed 'Established, asserted, and simply absent', kicked 'crowdsec · what the record supports', subtitled 'The archive grades this record confidence A, disputed false, real harm true. That grade covers the event; it does not extend to every claim made about it.' Three columns. 'Established', green: about 170 private repositories copied on 22 May 2026 in a nine-minute window from GitHub's own Git activity records; the account belonged to a departed developer and was revoked 25 May, three days later; 83 user email addresses and the details of 51 potential investors from 2020 appeared in the published archive; no infrastructure or database access and no code altered, per CrowdSec's audit. 'Asserted, not proven', amber: that the laptop was infected through TanStack, since CrowdSec's dev machines came back clean and its repository scan was inconclusive; which poisoned package arrived and when, which CrowdSec says it did not establish; that the downloaders were a BreachForum founder and the member diencracked, offered as what the Git data shows. 'Missing from the record', grey: GitHub's own findings, since support traced the token but no GitHub statement appears in the report; any arrest, charge or court record tying a named person to the copy; any independent forensic examination of CrowdSec's systems. A highlighted band reads 'The strongest evidence in the case is a Git fetch log inside a two-hour window GitHub handed over on request. The weakest is an attribution hedged in the same sentence that makes it.' A footer cites CrowdSec on 18 September, The Hacker News on 19 September and Dark Reading on 22 September. The OrcaRouter logo sits in a white strip at the bottom right.

Установлено: копирование около 170 приватных репозиториев произошло 22 мая 2026 года в течение девятиминутного окна с использованием всё ещё действовавшей учётной записи GitHub ушедшего разработчика — последовательность восстановлена по собственным записям Git-активности GitHub, а не предположена. Также по данным самой компании установлено: раскрытие 83 адресов электронной почты пользователей и сведений о 51 потенциальном инвесторе, отзыв 25 мая, проверенный токен SNS и вывод о том, что код не изменялся и не был получен доступ ни к инфраструктуре, ни к базе данных.

Не установлено:какой отравленный пакет попал на ноутбук и когда. CrowdSec прямо заявляет, что не выявил ни того, ни другого. Сканирование репозитория компании оказалось безрезультатным, а машины разработчиков, по результатам проверки, оказались чистыми, что плохо согласуется с ноутбуком, который, по собственному признанию компании, был скомпрометирован. Этот пробел признаётся, а не закрывается.

Не опубликовано: позиция GitHub в расследовании. CrowdSec утверждает, что служба поддержки GitHub подтвердила происхождение от TanStack, но The Hacker News отмечает, что в отчёте компании нет выводов от самого GitHub, и GitHub не опубликовал собственного описания жизненного цикла токена.

Подтверждение:Dark Reading, The Hacker News и DevOps.com — каждый из них освещал этот инцидент в течение недели, и все три опираются на отчёт CrowdSec и уведомление TanStack, а не на независимую криминалистическую экспертизу систем CrowdSec. Dark Reading добавляет комментарии сторонних практиков, включая Дениса Калдероне из Suzu Labs, который назвал упущение при отзыве «азами». Исследовательская заметка Cloud Security Alliance от 20 сентября повторяет эту цепочку событий, но документ содержит собственную оговорку о том, что он был создан с помощью ИИ и не прошёл официальную проверку CSA, — это стоит знать, прежде чем считать его вторым независимым выводом. Архив присваивает записи уровень достоверности A, оспорено — false, реальный вред — true.

Первое утверждение и исправление

В первом публичном заявлении CrowdSec от 17 сентября говорилось, что «никакие клиентские данные, логин/пароль, имя, организация или что-либо ещё не были утечены, и CrowdSec не хранит PII или клиентские логи; последствия ограничиваются CrowdSec». Компания также выдвинула техническую гипотезу: во внутренний компонент был внедрён бэкдор, чтобы украсть API-ключ, позволяющий читать приватный код.

Более полный отчёт, опубликованный днём позже, заменил эту гипотезу объяснением ушедшего сотрудника и раскрыл 83 адреса и 51 инвестора. Hacker News описывает это как исправление более раннего утверждения. Собственная формулировка CrowdSec более узкая: 83 адреса взялись из списка мониторинга для data science, а не из клиентских записей, а данные инвесторов датировались 2020 годом. Оба описания могут быть верны одновременно — эти адреса не были клиентскими аккаунтами, но всё равно оставались персональными данными в дампе, опубликованном на преступном форуме. Компания заявляет, что уведомит затронутых пользователей и инвесторов и сообщит об утечке властям.

Что изменилось после этого

• Учётные данные и токены, обнаруженные в архиве, были ротированы в ночное время 16 сентября и на протяжении 17 сентября; оставшаяся часть ротации была завершена на следующее утро.

• Обнаружение и реагирование на конечных точках теперь развёрнуто на рабочих станциях и ноутбуках людей, которые работают с кодовой базой или инфраструктурой CrowdSec; компания называет продуктом Aikido Security. Humeau признаёт, что это должно было быть внедрено раньше, а также признаёт, что на машине бывшего сотрудника вряд ли работало это решение.

• Пороговые значения алгоритма консенсуса, раскрытые в результате утечки, корректируются, а мониторинг статистических отклонений по всей сети блоклистов становится более строгим.

• Компания поставила перед собой цель сократить время того же реагирования — инвентаризация, ротация, криминалистическая экспертиза и раскрытие информации — с 48 часов до менее чем 24 часов.

• С пострадавшими пользователями и инвесторами связываются напрямую, а об утечке сообщают властям — в формулировке компании.

Почему это находится в архиве инцидентов ИИ

Участие ИИ здесь носит инфраструктурный характер, и стоит точно определить, что это означает. Ничто в отчёте CrowdSec не указывает на то, что система ИИ принимала решение во время вторжения; действующим лицом был человек или люди, использовавшие украденный токен. Именно масштаб последствий делает этот случай инцидентом в сфере ИИ. Библиотеки TanStack формируют интерфейсы значительной части современного программного обеспечения, червь, собравший токен, создан для того, чтобы за один проход похищать учётные данные облачных провайдеров, SSH и поставщиков моделей, а материалы, скопированные из CrowdSec, включали скрипты и модели для data science, а не только код приложений.

Та же кампания напрямую затронула компании, работающие в сфере ИИ. В хронологии CrowdSec зафиксировано, что 22 мая TeamPCP заявила о взломе репозиториев Mistral AI, а The Hacker News сообщает, что были скомпрометированы два устройства сотрудников OpenAI и получен несанкционированный доступ к ограниченному набору внутренних репозиториев кода. В архиве случай CrowdSec значится второй жертвой майской компрометации TanStack в цепочке поставок — после устройств сотрудников OpenAI.

Расстояние между копией и её обнаружением — это то, что должно было быть преодолено. Репозитории были похищены 22 мая; CrowdSec узнала об утечке 16 сентября, когда команда Fuites Info связалась с компанией по поводу публикации на pwnforum — спустя 117 дней, и не благодаря собственному мониторингу. Механизм, сделавший задержку возможной, не был экзотическим: учётная запись, просуществовавшая на три дня дольше, чем было нужно, токен, не оставивший следов в логах, которые компания могла прочитать, и ноутбуки разработчиков без обнаружения на конечных устройствах. У CrowdSec — компании, продающей средства обнаружения угроз, — было всё это.

© 2026 OrcaRouter

Провайдерам

Управляете инференс-платформой? Разместите свои модели на OrcaRouter.

providers@orcarouter.ai

Присоединяйтесь к сообществу

Discordsupport@orcarouter.aiXLinkedInGitHubYouTube