Компрометация npm-пакета Injective Labs угрожает кошелькам
Новый инцидент в экосистеме npm продемонстрировал высокую опасность компрометации учётных записей мейнтейнеров с открытым исходным кодом. Вредоносная версия пакета @injectivelabs/sdk-ts (1.20.21) содержала код для эксфильтрации закрытых ключей кошельков и мнемонических фраз, что поставило под удар всех, кто использует библиотеку в своих проектах.
Хронология и вектор атаки
Атака началась 8 июня 2026 года с подозрительного коммита в репозиторий, после чего была зафиксирована публикация скомпрометированной версии. Злоумышленник получил доступ к учётной записи GitHub, имевшей историю легитимных вкладов, что позволило выпустить вредоносный релиз от имени доверенного разработчика. Хотя настоящий владелец оперативно откатил изменения и выпустил чистую версию, вредоносный пакет успел набрать несколько загрузок, а его следы оставались доступны в реестре.
Как работает вредоносный код
Функционал бэкдора прост, но тщательно замаскирован. Вредоносная нагрузка активируется не на этапе установки, а при штатном использовании библиотеки — это помогает избегать автоматических систем обнаружения, ориентированных на проверку preinstall-скриптов. Код модифицирует стандартные функции, отвечающие за вывод ключей, внедряя в них вызов дополнительной функции отслеживания, которая и выполняет эксфильтрацию конфиденциальных данных на сторону атакующего.
Масштаб компрометации: множество пакетов под ударом
Особую угрозу представляет расширенный охват атаки. Злоумышленник не ограничился одним пакетом: вредоносная версия 1.20.21 была выпущена сразу для 17 других пакетов в пространстве имён @injectivelabs. Это создало риск для транзитивных зависимостей — пользователи могли даже не устанавливать @injectivelabs/sdk-ts напрямую, но получали вредоносный код через связанные библиотеки.
Среди затронутых пакетов, привязанных к вредоносному релизу, фигурируют:
- @injectivelabs/sdk-ts
- и множество других модулей экосистемы @injectivelabs
Все они были скомпрометированы одной и той же версией, что кратно увеличивало поверхность атаки.
Текущий статус и недочёты удаления
Несмотря на быстрые меры настоящего мейнтейнера, скомпрометированная версия @injectivelabs/sdk-ts до сих пор присутствует в реестре npm. Она помечена как устаревшая, но не удалена полностью, а значит, остаётся доступной для прямой загрузки. Это усугубляет риски для разработчиков, чьи CI/CD-пайплайны или lock-файлы могут ссылаться на уязвимую версию.
Рекомендации для разработчиков
Всем командам, использующим пакеты из пространства имён @injectivelabs, следует незамедлительно провести аудит зависимостей. Критически важно:
- Выявить и удалить все прямые и транзитивные ссылки на версию 1.20.21 во всех затронутых пакетах.
- Перейти на недавно выпущенную чистую версию 1.20.23.
- Считать любые конфиденциальные данные (закрытые ключи, мнемонические фразы), обработанные через скомпрометированные версии, потенциально скомпрометированными и принять меры по их ротации.
Инцидент вновь подчёркивает системные риски управления зависимостями в разработке ПО. Тщательные аудиты, верификация целостности версий даже от давних мейнтейнеров и строгие политики обновлений становятся не просто рекомендацией, а обязательным элементом безопасности цепочки поставок.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



