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

15 июля 2019 года

В зависимостях к 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.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «В зависимостях к npm-пакету с установщиком PureScript выявлены вредоносные изменения», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.