Атакуващ е копирал около 170 от частните хранилища в GitHub на CrowdSec на 22 май, използвайки акаунта на служител, който току-що бе напуснал, съобщи CrowdSec на 18 септември.
Френската компания за сигурност е оставила достъпа му до GitHub активен. CrowdSec твърди, че лаптопът му е бил компрометиран през май при атака срещу веригата за доставки на TanStack, при която зловредни версии на npm пакетите на TanStack са откраднали идентификационни данни от компютрите на разработчиците.
Кодът се е появил в онлайн форум на 16 септември. Заедно с изходния код, той е съдържал имейл адресите на 83 потребители на CrowdSec, както и имената, имейл адресите и контекста на инвестициите на 51 потенциални инвеститори от 2020 г., съобщи компанията.
CrowdSec заявява, че акаунтът е бил използван само за копиране на код, че не е имало достъп до нейната инфраструктура и бази данни и че никакъв код не е бил променян.
Как е бил откраднат кодът
На 11 май бяха публикувани 84 зловредни версии на 42 npm пакета на TanStack. Компрометирането се проследява като CVE-2026-45321. Инсталирането на една от тези версии е изпълнило код, който е откраднал идентификационни данни от машината, включително токени за GitHub, SSH ключове и облачни идентификационни данни, според бюлетина за сигурност на TanStack.
Компанията казва, че копирането е направено 11 дни по-късно с GitHub OAuth токен от акаунта на бившия служител. Компанията е запазила достъпа му, за да може да довърши определена работа.
CrowdSec премахва акаунта му от своята организация в GitHub на 25 май, три дни след копирането и месеци преди да научи за изтичането. Другият му достъп вече е бил премахнат, което според компанията обяснява защо не е видяла съмнителна активност в своите системи в AWS.
Токенът не е оставил следа в логовете на GitHub, които са могли да бъдат проверени, и вече не е съществувал, когато компанията е научила за изтичането. Твърди се, че поддръжката на GitHub след това е проследила историята на токена и е потвърдила подозрението, че TanStack е източникът.
CrowdSec не посочва кой зловреден пакет е стигнал до лаптопа на бившия служител или кога, а нейният доклад не включва констатациите на самия GitHub. Компанията заявява, че машините на нейните разработчици са били проверени и са чисти.
Същата атака е засегнала и други компании. Mistral AI заяви, че устройство на разработчик е било засегнато в техния случай, а OpenAI съобщи, че две устройства на служители са били засегнати, с неоторизиран достъп до ограничен набор от нейните вътрешни хранилища за код.
Какво е съдържал архивът
Security Engine с отворен код на CrowdSec открива атаки срещу сървъри, а потребителите, които споделят своите детекции, получават споделен списък с блокирани зловредни IP адреси. Изтеклият код произлиза от частните хранилища на компанията, а не от този публичен енджин.
Според компанията кодът включва нейната уеб конзола, скриптове и модели за Data Science, скриптове за автоматизация и консенсусния алгоритъм, който определя кои IP адреси да бъдат добавени към списъците с блокирани.
Заявява се, че кодът е на почти четири месеца и оттогава се е променил значително.
CrowdSec казва, че изтичането е разкрило и праговете, които консенсусният алгоритъм използва, като например колко детекции са необходими преди добавянето на IP адрес към списъка с блокирани. Тези данни не са били публични преди това.
Доколкото е известно на компанията, списъкът с блокирани все още не може да бъде компрометиран чрез подаване на фалшиви данни (poisoning), т.е. подведен да блокира безвреден IP адрес. За целта атакуващ би се нуждаел от десетки детекции от десетки доверени енджини в десетки отделни мрежи при високи разходи. CrowdSec също така заявява, че може да променя праговете, както често прави.
Според компанията единственият използваем токен за достъп в изтичането е бил за услугата за известия SNS на AWS и е можел само да публикува съобщения към една тема. Някой се е опитал да го използва на 17 август, месец преди кодът да бъде публикуван, но не е стигнал по-далеч. Други токени в кода вече са били подменени (ротирани) или не са могли да бъдат използвани от интернет, доколкото е известно на компанията.
CrowdSec заявява, че има около 150 000 потребители. Неговият екип по Data Science е запазил 83-те разкрити имейл адреса, за да проучи как хората използват продукта, и компанията заявява, че ще се свърже с тези потребители.
Данните за инвеститорите са произлезли от система от 2020 г., за която CrowdSec заявява, че никога не е била предназначена да бъде публична. Компанията казва, че ще докладва за изтичането на инвеститорите и на органите на реда. Изпълнителният директор Филип Юмо е написал на инвеститорите в доклада: „За това лично се извинявам“.
Засегнатата компания е подменила компрометираните токени за сигурност на 16 и 17 септември. По онова време тя не е изисквала софтуер за защита на крайни точки (EDR/endpoint protection) върху машините на разработчиците, но сега използва такъв софтуер на лаптопите на персонала, който работи с нейния код или системи.
Нито докладът на CrowdSec, нито първото ѝ изявление изискват от потребителите да предприемат каквито и да било действия.
Как се промени позицията на CrowdSec
Докладът на CrowdSec от 18 септември се различава от първото ѝ изявление, публикувано ден по-рано. В това изявление CrowdSec каза: „Не са изтекли клиентски данни, потребителски имена/пароли, имена, организации или каквото и да било друго“, и че въздействието е било ограничено само до компанията.
Първото изявление също така посочваше компрометирането на TanStack като много вероятен източник на изтичането. В него се казваше, че компонент, използван в CrowdSec през май, изглежда е съдържал задна вратичка (backdoor) за кражба на API ключ, който е можел да чете частния код.
Докладът от 18 септември заявява, че нито една от зловредните версии на TanStack не е намерена в кода на CrowdSec, и вместо това посочва акаунта на бившия служител. Той също така изброява имената на инвеститорите, за които в първото изявление се казваше, че не са изтекли, заедно с имейл адресите на 83-ма потребители.