← Все новости

Пакет @ethersphere/bee-js 13.3.0 подменили: при установке крадёт данные кошелька SwarmThe @ethersphere/bee-js 13.3.0 package was compromised to steal Swarm wallet data at install time

В npm-пакете @ethersphere/bee-js версии 13.3.0 обнаружили вредоносный код, который выполняется при установке, ищет данные кошелька Swarm Desktop и пытается закрепиться в системе. Судя по всему, для публикации использовали украденные учётные данные сопровождающего.The @ethersphere/bee-js npm package version 13.3.0 contains malicious install-time code that looks for Swarm Desktop wallet data and tries to establish persistence. The release appears to have used stolen maintainer credentials.

@ethersphere/bee-js — JavaScript-клиент для Bee, узла децентрализованного хранилища Swarm, который используется в том числе в приложениях с кошельками. Заражённая версия 13.3.0 попала в npm с кодом, который срабатывает не при вызове функций, а при установке пакета: то есть для заражения достаточно npm install, CI-джобы или сборки Docker-образа.

По описанию StepSecurity, полезная нагрузка ищет данные кошелька Swarm Desktop и пытается закрепиться на машине, чтобы доступ сохранялся после перезапуска. Для связи используется домен api.frameworkmetrics[.]xyz — его стоит считать индикатором компрометации. Характер публикации указывает на кражу учётных данных релиза, а не на ошибку в самом коде.

Кого это касается

Всех, кто ставил версию 13.3.0, — неважно когда, — а также тех, у кого она попала в кеш, lock-файл или образ. Отдельно — CI/CD: установка зависимостей на раннере означает, что вредоносный код мог получить доступ к переменным окружения, токенам деплоя и ключам, даже если кошелька на машине нет.

Что делать

Найти версию в package-lock.json, yarn.lock или pnpm-lock.yaml, откатиться на предыдущую и переустановить зависимости с чистым кешем. Проверить автозапуск, cron и подозрительные процессы — «закрепление» обычно означает именно это.

Ключи Swarm и seed-фразу, которые лежали на заражённой машине, нужно считать скомпрометированными и перевыпустить. Токены CI, которые были доступны процессу установки, — тоже.

И на будущее: включите ignore-scripts там, где install-скрипты не нужны, и проверяйте пакеты с помощью provenance-подписей. Это не панацея, но повышает цену такой атаки.

@ethersphere/bee-js is the JavaScript client for Bee, a node of the decentralised Swarm storage network, and it is used in wallet-adjacent applications. The compromised 13.3.0 release landed on npm with code that runs at install time rather than when a function is called: a plain npm install, a CI job or a Docker build is enough.

According to StepSecurity, the payload looks for Swarm Desktop wallet data and tries to establish persistence so access survives a reboot. Command-and-control uses api.frameworkmetrics[.]xyz, which should be treated as an indicator of compromise. The release pattern points to stolen publishing credentials rather than a bug in the code itself.

Who is affected

Anyone who installed version 13.3.0 at any point, and anyone with it in a cache, lockfile or image. CI/CD deserves separate attention: installing dependencies on a runner means the malicious code could reach environment variables, deploy tokens and keys even if there is no wallet on the machine.

What to do

Find the version in package-lock.json, yarn.lock or pnpm-lock.yaml, roll back to the previous one and reinstall from a clean cache. Check autostart entries, cron jobs and unexpected processes — that is usually what “persistence” means here.

Treat Swarm keys and any seed phrase that lived on the infected machine as compromised, and reissue them. The same goes for CI tokens the install process could read.

Going forward, enable ignore-scripts where install scripts are not needed and check provenance signatures. Neither is a cure, but both raise the cost of this kind of attack.

Источники