Mastodon Mastodon Mastodon Mastodon

Атака на цепочку поставок TanStack привела к копированию 170 приватных репозиториев CrowdSec

Фото автора

CyberSecureFox Editorial Team

Опубликовано:

11 мая 2026 года в реестре npm были опубликованы 84 вредоносные версии 42 пакетов @tanstack/*атака на цепочку поставок, отслеживаемая как CVE-2026-45321 с оценкой CVSS 9.6 (критическая). Вредоносный код похищал учётные данные с машин разработчиков, включая токены GitHub, ключи SSH и облачные креденшелы. По данным CrowdSec, именно эта атака привела к компрометации ноутбука бывшего сотрудника компании, через аккаунт которого 22 мая были скопированы около 170 приватных репозиториев GitHub. Архив с исходным кодом и персональными данными появился на онлайн-форуме 16 сентября. Инцидент также затронул OpenAI и Mistral AI.

Механизм атаки на цепочку поставок TanStack

Согласно официальному бюллетеню безопасности TanStack, 84 вредоносные версии были опубликованы в шестиминутном окне — между 19:20 и 19:26 UTC 11 мая 2026 года. Каждый из 42 затронутых пакетов получил ровно две вредоносные версии. Например, для @tanstack/react-router это были версии 1.169.5 и 1.169.8, а исправленной стала версия 1.169.9.

Установка любой заражённой версии запускала обфусцированный файл router_init.js (~2,3 МБ), который собирал и отправлял на внешние серверы широкий набор учётных данных:

  • Креденшелы AWS, GCP, Kubernetes, HashiCorp Vault
  • Токены npm и GitHub
  • Ключи SSH

Данные эксфильтрировались через домены filev2.getsession.org, seed1.getsession.org, seed2.getsession.org и seed3.getsession.org. Вредоносные версии содержали характерный индикатор — опциональную зависимость @tanstack/setup, указывающую на вредоносный Git-реф github:tanstack/router#79ac49eedf774dd4b0cfa308722bc463cfe5885c.

Уязвимость классифицирована как CWE-506 (встроенный вредоносный код). Бюллетень TanStack прямо указывает: среды разработки и CI/CD, установившие затронутую версию 11 мая через npm, pnpm или yarn, следует считать скомпрометированными.

Инцидент с CrowdSec: хронология и масштаб

По данным CrowdSec, опубликованным 18 сентября, цепочка событий выглядела следующим образом. Бывший сотрудник компании покинул организацию, но его доступ к GitHub был сохранён для завершения текущей работы. Его ноутбук, как сообщает компания, был скомпрометирован через вредоносный пакет TanStack. Через 11 дней после публикации вредоносных версий, 22 мая, с помощью OAuth-токена GitHub из аккаунта бывшего сотрудника были скопированы около 170 приватных репозиториев.

CrowdSec удалила аккаунт из своей GitHub-организации 25 мая — через три дня после копирования, но за несколько месяцев до того, как узнала об утечке. Компания указывает, что токен не оставил следов в доступных ей журналах GitHub и уже не существовал на момент обнаружения утечки. По словам CrowdSec, служба поддержки GitHub впоследствии отследила историю токена и подтвердила связь с атакой на TanStack.

Важно отметить: атрибуция копирования репозиториев именно через скомпрометированный токен бывшего сотрудника основана исключительно на заявлениях CrowdSec и не подтверждена независимыми источниками.

Содержимое утечки

Архив, появившийся на онлайн-форуме 16 сентября, по данным CrowdSec, содержал:

  • Исходный код веб-консоли, скрипты и модели обработки данных, скрипты автоматизации
  • Алгоритм консенсуса, определяющий, какие IP-адреса попадают в блок-листы, включая ранее непубличные пороговые значения
  • Адреса электронной почты 83 пользователей CrowdSec
  • Имена, адреса электронной почты и инвестиционный контекст 51 потенциального инвестора (данные 2020 года)

CrowdSec утверждает, что инфраструктура и базы данных компании не были затронуты, а код не был изменён. Единственный действующий креденшел в утечке, по данным компании, давал доступ только к сервису уведомлений AWS SNS с правом публикации в одну тему. Попытка его использования была зафиксирована 17 августа — за месяц до публикации архива.

Противоречия в заявлениях CrowdSec

Отчёт CrowdSec от 18 сентября существенно расширил описание последствий по сравнению с первоначальным заявлением от 17 сентября. В первом заявлении компания утверждала: «Никакие клиентские данные, логины/пароли, имена, организации или что-либо ещё не были раскрыты», а последствия ограничивались только самой компанией. Однако уже на следующий день отчёт зафиксировал утечку данных 83 пользователей и 51 инвестора. Первое заявление также указывало, что вредоносный компонент TanStack был обнаружен в коде CrowdSec, тогда как отчёт от 18 сентября сообщил, что ни одна вредоносная версия TanStack в коде компании найдена не была, а источником стал аккаунт бывшего сотрудника.

Последствия для других компаний

Атака на TanStack затронула не только CrowdSec. Согласно заявлению OpenAI, два устройства сотрудников были скомпрометированы, что привело к несанкционированному доступу к ограниченному набору внутренних репозиториев исходного кода. OpenAI сообщила, что не обнаружила свидетельств компрометации клиентских данных или интеллектуальной собственности, а также изменения опубликованного программного обеспечения. Мы уже писали о других инцидентах с участием OpenAI. Mistral AI также сообщила о компрометации устройства разработчика в связи с этой атакой.

Инцидент демонстрирует, что у атаки на цепочку поставок есть две различные группы пострадавших. Первая — любая среда разработки или CI/CD, установившая вредоносную версию пакета TanStack: для них требуется полное расследование хоста и ротация всех доступных креденшелов. Вторая — организации вроде CrowdSec, чьи ресурсы были скомпрометированы через украденные токены сотрудников.

Рекомендации

Для разработчиков и команд DevOps, использующих пакеты @tanstack/*:

  1. Проверьте зависимости: в манифестах закреплённых версий @tanstack/* ищите опциональную зависимость @tanstack/setup и файл router_init.js в корне пакета — это индикаторы компрометации
  2. Обновите пакеты до исправленных версий, указанных в бюллетене TanStack, и переустановите зависимости из чистого lock-файла
  3. Ротируйте все креденшелы, доступные на затронутых машинах — приоритет именно ротации, а не только удалению пакета, поскольку вредоносная зависимость могла быть установлена и удалена без следов в node_modules
  4. Проверьте облачные журналы аудита (AWS CloudTrail, GCP Audit Logs) на предмет несанкционированного доступа с использованием украденных креденшелов
  5. Проверьте домены эксфильтрации в сетевых журналах: filev2.getsession.org, seed1-3.getsession.org

Для организаций в целом инцидент CrowdSec подчёркивает критическую важность немедленного отзыва доступа увольняющихся сотрудников ко всем системам без исключений, а также необходимость обязательного использования средств защиты конечных точек на машинах разработчиков. CrowdSec признала, что на момент инцидента не требовала установки такого ПО, и внедрила это требование после произошедшего.

Атака CVE-2026-45321 на цепочку поставок TanStack — подтверждённый случай эксплуатации в реальных условиях с критической оценкой CVSS 9.6. Всем командам, работавшим с пакетами @tanstack/* 11 мая 2026 года, следует немедленно проверить свои среды на индикаторы компрометации, выполнить ротацию креденшелов и обновить пакеты до исправленных версий. Промедление с ротацией учётных данных создаёт окно для атак, аналогичных тем, что пережили CrowdSec и OpenAI.


CyberSecureFox Editorial Team

Редакция CyberSecureFox освещает новости кибербезопасности, уязвимости, malware-кампании, ransomware-активность, AI security, cloud security и security advisories вендоров. Материалы готовятся на основе official advisories, данных CVE/NVD, уведомлений CISA, публикаций вендоров и открытых отчётов исследователей. Статьи проверяются перед публикацией и обновляются при появлении новых данных.

Оставьте комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.