Версия 0.5.144 SDK платформы Tensorlake оказалась заражена червём Shai-Hulud — вредоносный npm-пакет успел появиться в публичном реестре, прежде чем его удалили. Для команд, внедряющих AI-агентов, это неприятное напоминание: песочница для сгенерированного кода не спасает, если компрометация происходит ещё на этапе установки SDK на рабочую станцию или CI-раннер.
Заражённый релиз обнаружили 8 октября, сообщает The Register. По данным компании Socket, её система отметила пакет через 11 минут после публикации. npm удалил версию, а Tensorlake выпустила обновление 0.5.145. Масштаб последствий пока не раскрыт: неизвестно, сколько разработчиков или сборочных серверов успели установить опасную сборку.
Tensorlake — облачная платформа для запуска изолированных AI-агентов и недоверенного кода, созданного этими агентами. Её npm SDK используют для создания и управления окружениями. У репозитория проекта более тысячи звёзд на GitHub, а сам пакет набирает около 12 тысяч загрузок в неделю. Эти цифры не доказывают число пострадавших, но показывают, что речь не о забытом пакете с парой случайных установок.
Shai-Hulud специализируется на краже учётных данных и самостоятельном распространении. Анализ заражённого релиза связывает его с вариантом, который исследователи называют ChainDrop. В августе этот вариант уже использовался при компрометации зависимостей npm, включая keyv и flat-cache. Атака на Tensorlake показывает, что авторы вредоносного кода ищут доступ не только в привычных фронтенд- и бэкенд-зависимостях, но и в инструментах вокруг агентной разработки.
Найденный в SDK код, по оценке SafeDep, нацелен на широкий набор секретов: криптокошельки, сохранённые браузером пароли, секреты GitHub Actions, облачные учётные данные и токены сервисных аккаунтов. Полученные данные отправляются наружу, а заражённая машина может поддерживать связь с управляющей инфраструктурой злоумышленников для получения дальнейших команд. Иными словами, опасность не ограничивается доступом к одному проекту Tensorlake: установочный скрипт потенциально видит всё, что доступно процессу установки.
Здесь и прячется главная ловушка для команд, которые аккуратно строят изоляцию вокруг AI-агентов. Код, который агент напишет и запустит внутри отдельного окружения, может быть хорошо ограничен. Но npm-пакет устанавливают вне этой изоляции — на ноутбуке разработчика, сервере приложения или в CI/CD. Если у такого процесса есть доступ к ключам деплоя, токенам облака и секретам репозитория, вредоносный npm-пакет получает тот же уровень доверия. Красивый sandbox в этой цепочке становится не защитой, а просто соседней комнатой.
У этого варианта Shai-Hulud есть ещё одна неприятная деталь. Он отслеживает часть украденных токенов GitHub и при их отзыве при определённых условиях способен запустить удаление домашнего каталога заражённого пользователя. Поэтому простая реакция «сейчас отзовём все ключи» может усугубить инцидент. Socket рекомендует сначала отключить механизм наблюдения за токенами, затем восстанавливать скомпрометированные системы из доверенного источника и только после этого возвращать доступ к секретам.
Практический минимум для пользователей Tensorlake сейчас очевиден: проверить историю зависимостей, логи CI и локальные кеши на установку версии 0.5.144; не считать обновление до 0.5.145 автоматическим доказательством безопасности хоста; провести ротацию секретов по процедуре реагирования на компрометацию. Отдельно стоит проверить, какие токены были доступны именно процессам npm install, а не только самому приложению. В реальных пайплайнах это часто два разных набора прав — и второй бывает опаснее первого.
Инцидент с Tensorlake вряд ли станет последней атакой такого типа. AI-инфраструктура быстро обрастает SDK, плагинами, шаблонами и агентскими интеграциями, а значит, расширяет поверхность атаки цепочки поставки. Главный вопрос теперь не в том, может ли компания изолировать код агента, а в том, умеет ли она проверять доверие ко всей дороге до этой песочницы — от npm-версии до привилегий CI-раннера.