У NPM-пакет node-ipc внесено шкідливу зміну, яка видаляє файли на системах у Росії та Білорусі

У NPM-пакеті node-ipc виявлено шкідливу зміну (CVE-2022-23812), що з ймовірністю 25% замінює на символ «❤️» вміст усіх файлів, до яких є доступ на запис. Шкідливий код активується лише при запуску на системах з IP-адресами з Росії чи Білорусі. Пакет node-ipc налічує близько мільйона завантажень на тиждень і використовується як залежність у 354 пакетів, включаючи vue-cli. Всі проекти, які мають в залежності від node-ipc, також схильні до проблеми.

Шкідливий код був розміщений у репозиторії NPM у складі випусків node-ipc 10.1.1 та 10.1.2. У Git-репозиторії проекту шкідлива зміна була розміщена від імені автора проекту 11 днів тому. Визначення країни у коді здійснювалося через звернення до сервісу api.ipgeolocation.io. В даний час ключ, до якого здійснювався доступ до API ipgeolocation.io із шкідливої ​​вставки, відкликаний.

У коментарях до попередження про появу сумнівного коду автор проекту заявив, що зміни зводяться до додавання файлу на робочий стіл, що виводить повідомлення із закликом до миру. Насправді в коді здійснювався рекурсивний перебір каталогів зі спробою перезапису всіх файлів, що зустрілися.

Пізніше в репозиторії NPM були розміщені випуски node-ipc 11.0.0 і 11.1.0, в яких замість вбудованого шкідливого коду додана зовнішня залежність peacenotwar, контрольована тим же автором і пропонована для підключення супроводжуючим пакетів, бажаючим приєднатися до протесту. Заявляється, що пакет peacenotwar лише виводить повідомлення про світ, але з урахуванням вже вжитих автором дій подальший вміст пакета непередбачуваний і відсутність деструктивних змін гарантується.

Паралельно випустили оновлення стабільної гілки node-ipc 9.2.2, яка використовується проектом Vue.js. У новому випуску до числа залежностей, крім peacenotwar, також було додано пакет colors, автор якого у січні інтегрував у код деструктивні зміни. Ліцензія на вихідні тексти у новому випуску була змінена з MIT на DBAD.

Оскільки подальші дії автора непередбачувані, користувачам node-ipc рекомендується зафіксувати залежність від версії 9.2.1. Зафіксувати версії також рекомендується для інших розробок того ж автора, який супроводжував 41 пакет. Деякі з пакетів, що підтримуються тим же автором (js-queue, easy-stack, js-message, event-pubsub) мають близько мільйона завантажень на тиждень.

Додаток: Фіксуються й інші спроби додавання до різних відкритих пакетів дій, не пов'язаних із прямою функціональністю додатків та прив'язаних до IP-адрес або системної локалі. Найбільш нешкідливі з подібних змін (es5-ext, rete, PHP composer, PHPUnit, Redis Desktop Manager, Awesome Prometheus Alerts, verdaccio, filestash) зводяться до висновку закликів до припинення війни для користувачів з Росії та Білорусі. При цьому виявляються і більш небезпечні прояви, наприклад, до пакетів AWS Terraform modules додано шифрувальник і внесено політичні обмеження до ліцензії. У прошивки Tasmota для пристроїв ESP8266 та ESP32 вбудована закладка, здатна блокувати роботу пристроїв. Передбачається, що подібна активність може серйозно підірвати довіру до відкритого ПЗ.

Джерело: opennet.ru

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