Злоумышленник скомпрометировал пакеты и релизные конвейеры MemTensor
23 сентября 2026 года злоумышленник скомпрометировал два пакета MemTensor: npm-пакет @memtensor/memos-cloud-openclaw-plugin и пакет PyPI MemoryOS. Вредоносные версии содержали один и тот же Go-имплант sckit, метаданные сборки которого указывали на модуль supplychain.local/campaign. Среди затронутых версий были npm-релизы 0.1.21, 0.1.23 и 0.1.25, а также версия PyPI 2.0.34. Имплант активировался при установке или импорте пакетов без хука установки, поэтому параметр --ignore-scripts не мешал выполнению кода.
Запуск и поиск учётных данных
В npm-плагине вредоносное ПО запускается при старте шлюза OpenClaw и во время извлечения данных из памяти. В MemoryOS имплант выполняется при ведении журнала, задействованном в большинстве сценариев импорта.
Вредоносное ПО ищет учётные данные в домашнем каталоге пользователя и переменных окружения. Среди целей поиска названы файлы .npmrc, .pypirc, .git-credentials и .netrc, ключи SSH, токены Vault, кэши токенов доступа Microsoft и облачных сервисов. Имплант также ищет секреты, соответствующие шаблонам токенов, паролей, API-ключей и URL-адресов баз данных, и распознаёт форматы учётных данных GitHub, GitLab, npm, PyPI, AWS, Hugging Face, HashiCorp Vault, Slack, Twilio и Stripe. Собранные данные передаются на инфраструктуру в доменной зоне skyleen.fr.
Компрометация выпуска и распространение
Злоумышленник скомпрометировал конвейеры выпуска релизов MemTensor в GitHub Actions, изменив ветки, теги и файлы, связанные с выпуском. В случае npm внедрённый код передавал импланту NPM_TOKEN или NODE_AUTH_TOKEN, вызывал сбой шага публикации, а затем удалял себя. Для PyPI вредоносный мост выпуска перехватывал учётные данные CI и подавлял публикацию пакета в одном запуске. В более позднем коммите рабочий процесс собрал и опубликовал пакет с бэкдором, используя легитимный токен.
Имплант способен распространяться на репозитории и пакеты, доступные с помощью украденных учётных данных. В нём есть подпрограммы для обнаружения репозиториев, изменения проектов npm и Python, модификации рабочих процессов и рекурсивной публикации заражённых релизов. Шаблоны полезной нагрузки включают:
- загрузчики на Python;
- загрузчики на Node.js;
- рабочий процесс GitHub Actions с именем
runtime-update.yml.
Имплант профилирует язык хоста, часовой пояс, уровень привилегий, страну и характеристики TLS. Для связи он использует CBOR, X25519, XChaCha20-Poly1305, подписанные аренды, манифесты и динамически доставляемые модули.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



