Взлом цепочки поставок TanStack: критические уязвимости в экосистеме GitHub Actions в мае 2026 года
TL;DR
Взлом цепочки поставок TanStack: когда «доверенное» ПО оборачивается против вас
11 мая 2026 года мир разработчиков получил суровое предупреждение. В период с 19:20 до 19:26 по всемирному координированному времени (UTC) пространство имен npm для TanStack — краеугольного камня современной веб-разработки — было скомпрометировано хакерской группировкой TeamPCP. За эти шесть минут они опубликовали 84 вредоносные версии для 42 различных пакетов @tanstack/*.
Это не была обычная атака типа «тайпосквоттинг». Злоумышленники не просто загрузили вредоносный код; они скомпрометировали сам процесс сборки. Используя уязвимости в GitHub Actions, они внедрили червя для кражи учетных данных непосредственно в цепочку поставок. Самое примечательное? Каждый из этих вредоносных пакетов имел действительное подтверждение происхождения SLSA (Supply-chain Levels for Software Artifacts).
Иллюзия доверия
Это переломный момент для безопасности программного обеспечения. Впервые мы увидели, как вредоносный npm-пакет поставляется с действительным подтверждением SLSA Build Level 3. Задумайтесь на секунду. Процесс сборки был настолько глубоко скомпрометирован, что аттестации безопасности — те самые механизмы, которые должны подтверждать безопасность пакета, — были технически точными, но фундаментально вредоносными.
Как подробно описано в отчете об инциденте, опубликованном TanStack, код был разработан так, чтобы активироваться в момент выполнения npm install. После активации он начинал поиск всего: ключей AWS, учетных данных GCP, конфигураций Kubernetes, токенов GitHub и SSH-ключей. Затем он незаметно передавал эти данные через сеть Session/Oxen. Если вы использовали эти пакеты, ваши секреты фактически транслировались злоумышленникам в режиме реального времени.
Анатомия атаки
Группировка TeamPCP, известная также под псевдонимами DeadCatx3, PCPcat или ShellForce, не ограничилась TanStack. Они развернули вариант червя «Mini Shai-Hulud». В течение пяти часов инфекция распространилась на более чем 170 пакетов в npm и PyPI.
Постмортем компрометации цепочки поставок npm проясняет, что, хотя отдельные учетные записи npm не обязательно были взломаны, злоумышленники нашли «черный ход» через рабочие процессы pull_request_target в GitHub Actions. Они фактически заставили CI/CD-конвейер выполнить всю тяжелую работу за них.
| Метрика | Детали |
|---|---|
| Дата инцидента | 11 мая 2026 г. (19:20–19:26 UTC) |
| Затронутые пакеты | 42 пакета @tanstack/* |
| Вредоносные версии | 84 версии всего |
| Статус происхождения | Действительный SLSA Build Level 3 (скомпрометирован) |
| Метод эксфильтрации | Сеть Session/Oxen |
| Основная группировка | TeamPCP / DeadCatx3 |
Почему традиционная безопасность не сработала
Мы годами призывали разработчиков «проверять происхождение» и «верифицировать подписи». Но что происходит, когда сама среда сборки лжет?
Поскольку компрометация произошла на уровне источника, автоматизированные механизмы доверия сделали именно то, для чего были запрограммированы: они верифицировали «доверенную» сборку, которая случайно содержала вредоносную нагрузку. Это проблема не только TanStack. Мы наблюдали похожие сценарии в недавних атаках на Trivy, Checkmarx KICS, LiteLLM и Bitwarden CLI. Очевидно, что мы имеем дело с скоординированной кампанией высокого уровня, направленной прямо в сердце инфраструктуры CI/CD.
Если вы использовали скомпрометированные версии, официальный бюллетень безопасности дает четкий совет: готовьтесь к худшему. Тот факт, что TeamPCP работает в связке с группировкой вымогателей Vect, является последним гвоздем в крышку гроба. Они не просто крадут данные; они собирают учетные данные для проведения полномасштабных деструктивных атак в будущем.
Очистка: что нужно сделать прямо сейчас
Если ваши CI/CD-конвейеры взаимодействовали с этими пакетами, вы должны действовать так, будто вся ваша среда скомпрометирована. Вот реальное положение дел:
- Уничтожьте (или хотя бы проведите аудит): Относитесь к любой среде CI/CD или машине разработчика, которая взаимодействовала с этими пакетами, как к месту преступления.
- Ротируйте всё: Не просто меняйте пароли. Ротируйте каждый API-ключ, облачный токен и SSH-ключ, к которым могли получить доступ эти машины. Считайте, что они уже находятся в руках злоумышленников.
- Ищите следы: Просмотрите логи CI/CD на предмет любой активности
npm installили странного исходящего сетевого трафика около 11 мая. - Очистите зависимости: Обновитесь до безопасных версий, указанных в официальном реестре отслеживания пакетов. Не полагайтесь на то, что ваш текущий lock-файл безопасен.
- Следите за латеральным движением: Поскольку эти злоумышленники связаны с программами-вымогателями, внимательно следите за своей внутренней сетью. Они стремятся переместиться с вашего сервера сборки в производственную среду.
Хрупкость автоматизации
Червь «Mini Shai-Hulud» — это мрачное напоминание о том, что наши современные конвейеры сборки держатся на хрупкой паутине доверия. Атакуя GitHub Actions, TeamPCP эффективно обошли периметры защиты, которые мы строили десятилетие. Мы работали с предположением, что если среда сборки автоматизирована и «доказана», она должна быть безопасной. Этот инцидент доказывает, что это предположение — опасное заблуждение.
Для тех, кто хочет углубиться в детали, трекер проблем репозитория TanStack router содержит подробный разбор того, как именно работала кража OIDC-токенов. Это отрезвляющее чтение о том, как легко можно манипулировать конвейером.
По мере продолжения расследования послание сообществу разработчиков простое: перестаньте слепо доверять конвейеру. Мы достигли точки, когда целостность среды сборки больше нельзя принимать как данность — ее необходимо проверять, аудировать и относиться к ней с тем же скептицизмом, что и к самому коду. Оставайтесь бдительными, потому что злоумышленники точно не спят.