Зафиксирована ******-атака на сопровождающих JavaScript-библиотеки, в ходе которой от имени сервиса NPM было разослано сообщение, уведомляющее о необходимости подтвердить свой email. Проведённая атака позволила злоумышленникам получить NPM-токены сопровождающего одного из крупных JavaScript-проектов и выпустить обновления с вредоносным кодом для пяти NPM-пакетов, в сумме насчитывающих около 100 млн загрузок в неделю. Отправленное сопровождающим сообщение было стилизовано под типовые уведомления NPM, отправляемые с адреса "support@npmjs.org", но в качестве ссылки для перехода был указан домен "npnjs.com" вместо "npmjs.com" (третья буква "n" вместо "m"). Атакующие воспользовались психологическим эффектом, из-за которого мозг, предвосхищая ожидаемый результат, не замечает незначительные искажения, такие как замена букв на похожие или изменение порядка следования букв в слове. При переходе по ссылке открывалась полная копия сайта npmjs.com (вероятно, был настроен ******, перехватывающий токен доступа). В ходе атаки были сформированы новые версии пакетов: eslint-config-prettier : 8.10.1, 9.1.1, 10.1.6, 10.1.7. eslint-plugin-prettier : 4.2.2, 4.2.3. synckit : 0.11.9. @pkgr/core : 0.2.8. napi-postinstall : 0.3.1. В сформированные выпуски был добавлен вредоносный код для атаки на пользователей, использующих платформу Windows. Внесённые изменения загружали библиотеку node-gyp.dll, содержащую функциональность для удалённого выполнения команд в системе. Сопровождающий заметил , что стал жертвой ******а примерно через час после поступления первой жалобы о публикации подозрительных релизов. Он сразу отозвал токен доступа, поменял пароли и пометил проблемные версии устаревшими для предотвращения загрузки автоматизированными сборочными системами и отправил запрос на удаление проблемных версий из репозитория в службу поддержки NPM. Не уточняется сколько пользователей успело загрузить вредоносные версии (например, вредоносная версия пакета eslint-plugin-prettier оставалась в репозитории около двух дней). За прошлую неделю пакет eslint-config-prettier насчитывал 30 млн загрузок и использовался в качестве зависимости у 11762 тысячи пакетов, пакет eslint-plugin-prettier - 21 млн загрузок (8468 зависимых пакетов), synckit - 18 млн, @pkgr/core - 16 млн и napi-postinstall - 10 млн. Дополнение: Выявившие ******-атаку исследователи несколько дней назад также обратили внимание на 28 NPM-пакетов, авторами которых было включено изменение категории Protestware . Изменение приводило к воспроизведению украинского гимна и отключению обработки событий от мыши на сайтах в доменных зонах "ru", "su", "by" и "рф", если пользователь ранее уже открывал сайт более трёх дней назад и в его браузере была включена поддержка русского языка. Изначально изменение было реализовано около трёх лет назад в пакете Sweetalert2 , насчитывающем 700 тысяч загрузок в неделю и используемого в 2403 других пакетах как зависимость. Наличие протестной активности было отдельно упомянуто на странице проекта. Через какое-то время изменение стало заимствоваться авторами других пакетов, как правило насчитывающие несколько сотен загрузок в неделю.