В залежності від npm-пакету з установником PureScript виявлено шкідливі зміни

В залежності від npm-пакету з установником 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() замість списку необхідних для встановлення бінарних файлів повертав потік Проходити, що дзеркує вхідні запити як вихідні значення.

Через 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

Додати коментар або відгук