В 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

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