История началась с тихой публикации трёх версий, но быстро превратилась в тревожный сигнал для всей экосистемы.

В экосистеме npm снова всплыл риск, который особенно опасен для разработчиков и DevOps-команд: вредоносный код попал не в новый сомнительный пакет, а в известную библиотеку node-ipc. Сразу три опубликованные версии пытались собирать локальные файлы, ключи и облачные учётные данные, а затем передавать украденные данные на внешний сервер.
Компании Socket и StepSecurity подтвердили вредоносное поведение в node-ipc[@]9.1.6, node-ipc[@]9.2.3 и node-ipc[@]12.0.1. По их данным, код был сильно обфусцирован и запускался при подключении пакета во время работы приложения. Вредоносный модуль проверял окружение, искал файлы с секретами, упаковывал найденные данные в GZIP-архив и отправлял их на домен sh.azurestaticprovider[.]net.
Под угрозой оказались около 90 категорий данных, включая ключи Amazon Web Services, Google Cloud и Microsoft Azure, SSH-ключи, токены Kubernetes, настройки GitHub CLI, Claude AI и Kiro IDE, состояния Terraform, пароли к базам данных и историю командной строки. Такой набор показывает, что атака была нацелена не на обычные пользовательские данные, а на доступы, через которые можно развивать атаку внутри инфраструктуры.
Версии опубликовал аккаунт atiertant. Он числился среди сопровождающих node-ipc, но раньше не выпускал обновления для пакета и не связан с первоначальным автором, известным как Риа Эвангелист. Предыдущее обновление node-ipc выходило в августе 2024 года, поэтому появление вредоносных релизов после 21 месяца простоя выглядит как компрометация учётной записи либо заранее подготовленное добавление нового сопровождающего.
Особенность атаки в том, что вредоносный код не использовал стандартные npm-сценарии вроде preinstall, install или postinstall. Вместо этого полезная нагрузка была добавлена в конец файла node-ipc.cjs и запускалась при каждом require('node-ipc'). Схожий приём — внедрение кода в основной файл пакета в обход стандартных скриптов установки — уже применялся в атаках на цепочку поставок в этом году.
В версии 12.0.1 нашли дополнительную проверку по SHA-256. По оценке специалиста StepSecurity Сая Ликхита, код срабатывал только на машине, где основной путь модуля совпадал с заранее рассчитанным значением. Это указывает на точечную атаку против конкретного проекта или разработчика. В версиях 9.x такого ограничения не было, поэтому код запускался на любой системе, где подключался пакет.
Авторы отчёта также описали второй канал вывода данных через DNS TXT-запросы. Вредоносный код обходил локальные DNS-настройки, сначала обращался к публичным резолверам, а затем перенаправлял запросы напрямую на управляющий сервер. Такой приём мешает компаниям заметить утечку, если мониторинг строится только на корпоративных DNS-журналах.
Пользователям node-ipc советуют удалить версии 9.1.6, 9.2.3 и 12.0.1, перейти на проверенные 9.2.1 или 12.0.0, заменить все секреты, которые могли находиться на заражённых машинах, проверить журналы npm, CI/CD и облачных сервисов, а также заблокировать исходящий трафик к управляющему домену.