
Снова GitHub Actions: разбираем масштабную атаку на TanStack, 84 пакета под угрозой
YukinoKingu 11 минут назад Снова GitHub Actions: разбираем масштабную атаку на TanStack, 84 пакета под угрозой 36 мин 359 Блог компании FirstVDS Веб-разработка * Информационная безопасность * ReactJS * VueJS * Перевод...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. YukinoKingu 11 минут назад Снова GitHub Actions: разбираем масштабную атаку на TanStack, 84 пакета под угрозой 36 мин 359 Блог компании FirstVDS Веб-разработка * Информационная безопасность * ReactJS * VueJS * Перевод Автор оригинала: Socket Research Team Команда Socket Threat Research обнаружила компрометацию 84 npm-пакетов в пространстве @tanstack: в них внедрили вредоносный имплант Mini Shai-Hulud, нацеленный на кражу учётных данных и секретов из CI/CD-сред, включая GitHub Actions. Атака особенно опасна тем, что вредонос автоматически запускается при установке зависимостей через lifecycle-хуки npm, а среди затронутых пакетов есть крайне популярные — например, @tanstack/react-router с более чем 12 млн загрузок в неделю. Всё это делает инцидент серьёзной угрозой для безопасности цепочки поставок ПО.
В статье подробнее разберём механизм заражения, риски для разработчиков и компаний, а также первоочередные меры реагирования — от проверки зависимостей до ротации секретов и аудита CI-пайплайнов. Принцип работы червяВсе вредоносные версии пакетов содержат новый файл router_init. js, размером около 2,3 МБ.
Технические детали
Он сильно обфусцирован с использованием шаблонов, характерных для javascript-obfuscator (ротация массивов строк, обращения к идентификаторам в hex-формате вроде _0x253b, выравнивание потока управления внутри автоматов состояний while(!! ){}, внедрение мёртвого кода). Это заметно отличает вредонос от обычных минификаторов, таких как Terser, esbuild или swc.
Файл включает:демонизацию на основе spawn с защитой от повторного входа через DAEMONIZED и отделённым stdio;доступ к переменным окружения GITHUB_* (секреты, доступные только в Actions/CI, включая токены и идентификатор пользователя/актора);промежуточное размещение данных во временной директории с жизненным циклом чтение/запись/удаление;а также операции удалённой потоковой передачи/отправки данных. Недавно опубликованные версии также содержат следующее добавленное поле optionalDependencies в файле package. json, которое указывает на коммит в репозитории TanStack/router с хешем коммита 79ac49eedf774dd4b0cfa308722bc463cfe5885c.
"optionalDependencies": { "@tanstack/setup": "github:tanstack/router#79ac49eedf774dd4b0cfa308722bc463cfe5885c" }Этот коммит вызывает серьезные подозрения. Он автономен и не имеет родительской истории. В него добавлены всего два файла: package.
Отраслевые последствия
json и tanstack_runner. json определяет пакет с именем @tanstack/setup и регистрирует хук жизненного цикла prepare, который выполняет команду bun run tanstack_runner. Поскольку хуки жизненного цикла npm запускаются автоматически при установке зависимостей на основе git, это позволяет запускать произвольный код на рабочих станциях разработчиков или в системах CI во время установки.
Автор коммита — аккаунт GitHub voicproducoes, чьи публичные репозитории включают проекты с названиями типа «A Mini Shai-Hulud has Appeared».
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





