Вредоносные версии npm-пакета запускали скрытые бинарные файлы

23 сентября 2026 года вредоносные выпуски npm-пакета @memtensor/memos-cloud-openclaw-plugin версий 0.1.21, 0.1.23 и 0.1.25 содержали скрытый исполняемый полезный груз. Аналогичный загрузчик нашли в исходном дереве Python для MemoryOS 2.0.34. В обоих случаях анализ обнаружил признаки сбора данных и учётных записей, однако успешную эксфильтрацию не подтвердили.

Загрузка полезного груза и сбор данных

Пакет npm не использовал скрипты установки. Вместо этого изменённый код плагина импортировал lib/sckit.js и запускал полезный груз при старте шлюза и во время операций извлечения из памяти. При извлечении загрузчик передавал запрос пользователя через переменную окружения SCKIT_EVENT_TEXT. Он также копировал окружение хост-процесса, что потенциально могло привести к раскрытию унаследованных учётных данных дочернему процессу.

Загрузчик выбирал бинарные файлы для конкретных платформ из скрытого каталога .sckit и запускал их в отсоединённом режиме с подавлением ввода и вывода. Полезные нагрузки предназначались для Windows, Linux и macOS на архитектурах amd64 и arm64. В версии 0.1.25 появились tls-trust.js и встроенный файл CA. Они позволяли дочернему процессу использовать резервный набор сертификатов в некоторых минимальных средах Linux или CI. Это повышало надёжность HTTPS, но не отключало проверку сертификатов и не подтверждало передачу данных.

Статический анализ выявил строки и шаблоны, связанные с такими данными:

  • ключи AWS и JWT;
  • токены GitHub и GitLab;
  • учётные данные npm и PyPI;
  • токены Hugging Face и Vault;
  • ключи Slack и Stripe;
  • учётные данные SendGrid;
  • другие значения, похожие на секреты.

Декодированная конфигурация использовала домашний каталог как корневой каталог для инвентаризации. Это соответствовало цели сбора учётных записей и локальных файлов. Вредоносные выпуски появлялись повторно вскоре после чистых выпусков. По оценке авторов отчёта, одной замены пакета недостаточно, чтобы устранить скомпрометированный доступ к публикации.

Исходный код Python и меры реагирования

В исходном дереве Python для MemoryOS 2.0.34 находились аналогичный загрузчик и шесть бинарных файлов для разных платформ. Путь инициализации журналирования мог запускать загрузчик во время импорта; дочерний процесс при этом наследовал окружение процесса Python. Пакет также включал вспомогательные средства доставки CI. Перед загрузкой и запуском эмиттера они проверяли подписанные метаданные, идентификаторы выполнения, хеши активов и встроенный ключ Ed25519.

В строках нативных бинарных файлов упоминались извлечение учётных данных, рекурсивная публикация, подготовка удалённых узлов и инфраструктура кампании. Успешную эксфильтрацию исследователи не подтвердили.

Авторы отчёта рекомендуют:

  • изолировать затронутые хосты и раннеры;
  • остановить процессы полезных нагрузок, запущенных в отсоединённом режиме;
  • сохранить доказательства;
  • удалить скомпрометированные пакеты и пересобрать системы из доверенных источников;
  • сменить все доступные учётные данные;
  • проверить промпты агентов и конфиденциальные файлы;
  • расследовать телеметрию процессов и сети;
  • проверить активность пакетов и репозиториев;
  • отозвать несанкционированные учётные данные для публикации.

Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.

Ознакомиться подробнее с отчетом можно по ссылке.

Технологии киберугроз
Автор: Технологии киберугроз
Технологии киберугроз – технологическая компания, специализирующаяся на решениях по анализу угроз для предприятий любого размера. Мы собираем, нормализуем, обогащаем информацию о киберугрозах со всего мира. Нашими источниками являют более 260 открытых фидов, более 100 открытых поставщиков Threat Intelligence-отчетов, открытые online sandbox, социальные сети и репозитории GitHub. Мы также предоставляем ряд сервисов по: семантическом анализу Threat Intelligence-отчетов и приведения их в машиночитаемый формат STIX 2.1, проверки IoC на потенциальные ложноположительные сработки, а также получению WHOIS-записей для доменных имен.
Комментарии:

Как мы обрабатываем данные: политика обработки персональных данных