У 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

Дадаць каментар