144 пакета Mastra в npm скомпрометированы через взломанный аккаунт контрибьютора
Вредоносная зависимость easy-day-js запускалась при установке и устанавливала троян-стилер. Пострадали пакеты @mastra/*, включая @mastra/core с 918 тыс. загрузок в неделю.
Новости TprogerЕсли в вашем проекте есть пакеты @mastra/* — проверьте lock-файлы и логи CI. Утром 17 июня 2026 года злоумышленники опубликовали 144 вредоносные версии в npm-пространстве имён Mastra, добавив в зависимости троянскую библиотеку.
Ключевые выводы
- Скомпрометированы 144 пакета в пространстве имён
@mastra/*, включая@mastra/core. - Атака шла через взломанный аккаунт бывшего контрибьютора
ehindero. - Вредоносная библиотека
easy-day-jsзапускалась через postinstall и устанавливала кроссплатформенный стилер. - npm уже откатил latest-теги и удалил вредоносные версии у ключевых пакетов.
Как прошла атака на пакеты Mastra в npm
Mastra — это open-source фреймворк на JavaScript и TypeScript для создания ИИ-приложений и агентов. Только @mastra/core скачивают более 918 тыс. раз в неделю, поэтому инцидент затронул огромное число разработчиков и CI-сред.
По данным исследователей из JFrog, SafeDep, Socket и StepSecurity, атака длилась 88 минут. Злоумышленники массово публиковали версии с добавленной зависимостью easy-day-js — клоном популярной библиотеки dayjs. Пакет появился у пользователя sergey2016 16 июня в 7:05 UTC как чистая копия, а вредоносный код был внесён 17 июня в 1:01 UTC.
При установке easy-day-js срабатывал обфусцированный postinstall-хук (скрипт, который npm запускает автоматически после установки пакета): он отключал проверку TLS, загружал вторую стадию с сервера 23.254.164[.]92, запускал её фоновым процессом и самоудалялся. Финальный троян собирал историю браузера, данные свыше 160 браузерных расширений криптовалютных кошельков и передавал их на C2-сервер 23.254.164[.]123 — сервер управления злоумышленников.
Что делать разработчикам
- Проверить lock-файл:
grep easy-day-js package-lock.jsonилиnpm ls easy-day-js. - Откатиться к версии, опубликованной до 17 июня 2026 года (~1:01 UTC), и зафиксировать её в зависимостях.
- Сменить токены npm, GitHub, SSH-ключи и переменные окружения на хостах, где стоял подозрительный пакет.
- Проверить логи сети и DNS на обращения к IoC (индикаторам компрометации): IP
23.254.164[.]92и23.254.164[.]123. - Включить проверку подписей пакетов:
npm audit signatures, и в CI требовать SLSA-provenance-attestation.
Часто задаваемые вопросы
Как работает вредоносная зависимость easy-day-js?
easy-day-js — клон библиотеки dayjs, в который встроили вредоносный код. При установке пакета срабатывает postinstall-хук, который загружает и запускает троян-стилер.
Как понять, что мой проект пострадал?
Проверьте lock-файл на наличие easy-day-js и логи установок пакетов @mastra/* за 17 июня 2026 года. Также поищите в логах обращения к IP 23.254.164[.]92 и 23.254.164[.]123.
Что такое SLSA provenance и почему это важно?
SLSA provenance — это аттестация, которая подтверждает, что пакет собран из доверенного CI-конвейера. Её требование помогло бы отклонить вредоносные публикации, сделанные не из CI Mastra.
Что делать, если я установил пострадавший пакет?
Откатить версию, сменить учётные данные и токены, проверить систему на артефакты атаки и настроить проверку подписей и provenance в CI.
npm уже удалил вредоносные версии у ключевых пакетов и вернул latest-теги. Но разработчикам стоит проверить свои системы: полезная нагрузка выполняется ещё на этапе установки, до первого импорта пакета. Источник: The Hacker News.