В зависимостях к npm-пакету с установщиком PureScript выявлены вредоносные изменения

В зависимостях к npm-пакету с установщиком PureScript выявлен вредоносный код, проявляющийся при попытке установки пакета purescript. Вредоносный код встроен через зависимости load-from-cwd-or-npm и rate-map. Примечательно, что сопровождением пакетов с данными зависимостями занимается изначальный автор npm-пакета с инсталлятором PureScript, который до недавних пор занимался сопровождением данного npm-пакета, но около месяца назад пакет перешёл к другим сопровождающим.

Проблему обнаружил один из новых мэйтейнеров пакета, которому права на сопровождение были переданы после многих разногласий и неприятных обсуждений с изначальным автором npm-пакета purescript. Новые мэйнтейнеры отвечают за компилятор PureScript и настаивали, что NPM-пакет с его установщиком должен обслуживаться теми же сопровождающими, а не посторонним лицом. Автор npm-пакета с установщиком PureScript долго не соглашался, но затем уступил и передал доступ к репозиторию. При этом некоторые зависимости остались под его управлением.

На прошлой неделе был выпущен релиз компилятора PureScript 0.13.2 и
новыми сопровождающими было подготовлено соответствующее обновление npm-пакета с установщиком, в зависимостях к которому был выявлен вредоносный код. Смещённый с поста сопровождающего автор npm-пакета с установщиком PureScript заявил, что его учётная запись была скомпрометирована неизвестными атакующими. Тем не менее, в текущем виде действия вредоносного кода ограничивались лишь саботажем установки пакета, который стал первой версией от новых сопровождающих. Вредоносные действия сводились к зацикливанию с выводом ошибки при попытке установить пакет командой «npm i -g purescript» без выполнения явной вредоносной активности.

Были выявлены две атаки. Через несколько часов после официального выхода новой версии npm-пакета purescript кем-то была сформирована новая версия зависимости load-from-cwd-or-npm 3.0.2, изменения в которой привели к тому, что вызов loadFromCwdOrNpm() вместо списка необходимых для установи бинарных файлов возвращал поток PassThrough, зеркалирующий входные запросы в качестве выходных значений.

Спустя 4 дня, после того как разработчики разобрались в источнике сбоев и готовились выпустить обновление для исключения load-from-cwd-or-npm из зависимостей, злоумышленниками было выпущено ещё одно обновление load-from-cwd-or-npm 3.0.4, в котором вредоносный код был убран. Тем не менее, почти сразу было выпущено обновление другой зависимости rate-map 1.0.3, в которой было добавлено исправление, блокирующее callback-вызов для загрузки. Т.е. в обоих случаях изменения в новых версиях load-from-cwd-or-npm и rate-map носили характер явной диверсии. Более того, во вредоносном коде имелась проверка, которая активировала сбойные действия только при установке выпуска от новых сопровождающих и никак не проявлялась при установке старых версий.

Разработчики решили проблему выпуском обновления, в котором проблемные зависимости были удалены. Для того чтобы исключить оседание скомпрометированного кода на системах пользователей после попытки установки проблемной версии PureScript рекомендуется удалить содержимое каталогов node_modules и файлов package-lock.json, после чего выставить в качестве нижнего лимита версию purescript 0.13.2.

Источник: opennet.ru

Добавить комментарий