Популярный NPM-пакет портит файловые системы из России и Белоруссии

Популярный NPM-пакет портит файловые системы из России и Белоруссии

Популярный NPM-пакет портит файловые системы из России и Белоруссии

Разработчик популярного NPM-пакета «node-ipc» решил выразить свою позицию по складывающейся сейчас ситуации в Украине. В новую версию своей разработки девелопер добавил функциональность вайпера, который удаляет файловые системы, если IP-адрес пользователя принадлежит России или Белоруссии.

Такое решение вызвало ряд вопрос, касающихся безопасности цепочек поставок софта и сообщества любителей открытого кода. Как известно, вредоносное нововведение появилось в версиях 10.1.1 (вышла 7 марта) и 10.1.2.

RIAEvangelist, стоящий за разработкой node-ipc, решил бить по IP-адресам. Если географически адрес совпадал с Россией или Белоруссией, софт перезаписывал содержимое произвольных файлов эмодзи «сердечко».

Напомним, что node-ipc предназначен для локальной и удалённой коммуникации между процессами. NPM-пакет поддерживает системы Linux, macOS, Windows и насчитывает более 1,1 млн еженедельных загрузок.

«Очевидно, это злоупотребление своим положением, которое привело к критическому инциденту для цепочки поставок софта», — комментирует ситуацию Лиран Тал из Synk.

Проблеме присвоили идентификатор CVE-2022-23812 и 9,8 балла по шкале CVSS. Согласно сообщениям, в версии 10.1.3 деструктивный код был удалён.

DOOM запустили в Microsoft Paint, холст кормят кадрами через буфер обмена

Технический директор Microsoft Azure Марк Руссинович выпустил DoomPaint — проект, который позволяет играть в DOOM прямо на холсте Microsoft Paint. Правда, калькулятором Paint так и не стал: игру обсчитывает движок ViZDoom, а встроенный редактор Windows лишь показывает готовые кадры.

DoomPaint запускает движок без отдельного окна, формирует изображение и отправляет его в Paint через буфер обмена.

Каждый кадр вставляется на холст как новая картинка. Разрешение по умолчанию составляет 640×400 пикселей, а частота достигает родных для DOOM 35 кадров в секунду. При нагрузке производительность может скатиться до уровня, который Руссинович метко назвал табличным.

Играть при этом можно полноценно: доступны управление с клавиатуры, стрельба, бег, открытие дверей, звуковые эффекты и MIDI-саундтрек. Есть и бонус, которого не было в оригинале: Ctrl+Z превращается в перемотку времени.

Каждый кадр хранится в истории Paint, поэтому несколько отмен способны буквально оживить погибшего героя. А сохранение файла создаёт обычный PNG со сценой игры — Paint ведь понятия не имеет, что его заставили изображать монитор.

 

Главной проблемой стал сам буфер обмена. Если десятки раз в секунду очищать его и записывать новый кадр, Paint может не успеть прочитать предыдущий и выдать ошибку. Поэтому DoomPaint публикует один объект OLE на всю сессию и обновляет содержащиеся в нём данные. Следующий кадр появляется только после подтверждения, что Paint забрал предыдущий.

Вставка запускается синтетическим Ctrl+V либо через меню Paint, если приложение игнорирует нажатие. Низкоуровневый перехватчик клавиатуры не даёт игровым клавишам случайно нажимать кнопки редактора.

Проект опубликован на GitHub и требует Python. После запуска файла run.bat скрипт сам создаёт окружение, устанавливает зависимости и открывает Paint.

RSS: Новости на портале Anti-Malware.ru