Пакет tensorlake, по имеющимся данным, содержал червя Mini Shai-Hulud
Пакет npm tensorlake@0.5.144, по имеющимся данным, распространялся с тегом latest и содержал червя для кражи учётных данных, новую сборку семейства ВПО Mini Shai-Hulud. Вредоносный код размером около 856 КБ находился в файле lib/Math_Symbol.js и запускался при установке пакета. Он нацелен на учётные данные облачных сервисов, GitHub, npm, SSH, браузеров и криптокошельков.
Кража данных и связь с инфраструктурой управления
В состав ВПО входит компонент для кражи паролей из браузера. Он запускает бинарный файл с аргументами, характерными для HackBrowserData: dump -b all -c password -f json. По имеющимся данным, на системах с русской локалью выполнение пропускается.
Вредоносное ПО использует несколько механизмов управления. В него встроен домен iseekaigogo.com; кроме того, оно обращается к контракту Ethereum 0xb614155Fd88114d40549b259457Bcf921Df091B9 через 35 публичных RPC-эндпоинтов, чтобы получить сведения об инфраструктуре управления. Червь также ищет в GitHub подписанные коммиты, связанные с thebeautifulmarchoftime, и проверяет их с помощью встроенного ключа RSA.
Для передачи данных вредоносное ПО использует публичные репозитории. Выгруженную информацию оно коммитит в зашифрованном виде во вновь созданные публичные репозитории с описанием Shai-Hulud: Here We Go Again. После эксфильтрации червь обращается к инфраструктуре управления каждые 45–90 секунд. Ответы могут содержать произвольный код, который он выполняет с помощью JavaScript-функции eval.
Распространение через npm и действия с GitHub
Для распространения червь использует токены npm, чтобы изменять все пакеты, доступные для публикации скомпрометированной учётной записи. Он добавляет в них полезную нагрузку и скрипт preinstall, увеличивает номер патч-версии и повторно публикует пакеты. В средах CI червь также может злоупотреблять доверенной публикацией npm: добавлять зависимость от Git и подписывать полученный пакет через Fulcio и Rekor.
Украденный доступ к GitHub используется для добавления хуков Claude Code и VS Code, а также рабочего процесса Copilot. Этот рабочий процесс извлекает секреты репозитория, а затем удаляет запуск рабочего процесса и ветку.
Компонент удаления gh-token-monitor проверяет токен GitHub каждые 60 секунд в течение 24 часов. Если GitHub возвращает ответ 40x, например после отзыва токена, компонент выполняет команду rm -rf ~/. Это может привести к удалению домашнего каталога пользователя. Монитор может закрепляться в системе как пользовательский сервис systemd, LaunchAgent в macOS или запланированная задача в Windows.
Для заражения через npm требуется файл ./dist/Math_Symbol.js. Внедрённый загрузчик ищет файл ai_init.js, тогда как червь создаёт файл math_init.js. Это может повлиять на выполнение.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.
Об этом также писали: aikido.dev, socket.dev, stepsecurity.io.



