Скомпрометированы 18 NPM-пакетов, насчитывающих более 2 миллиардов загрузок в неделю

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 347
Зарегистрирован: 20.08.2022

#

Скомпрометированы 18 NPM-пакетов, насчитывающих более 2 миллиардов загрузок в неделю
Дата публикации:Tue, 09 Sep 2025 08:07:56 +0300

В результате фишинга атакующим удалось перехватить учётные данные сопровождающего 18 популярных NPM-пакетов, в сумме загруженных более 2 миллиардов раз в неделю. Для скомпрометированных пакетов атакующие успели выпустить новые версии, содержащие вредоносный код. Это самая крупная атака на репозиторий NPM, которая затрагивает не только напрямую атакованные проекты, но сотни тысяч пакетов, зависимых от них.
Среди прочего, вредоносные обновления были выпущены для пакетов debug, chalk, ansi-styles, color-convert, wrap-ansi, supports-color и ansi-regex, имеющих более 200 млн загрузок за последнюю неделю. Отдельно выделяются пакеты chalk и debug, которые имеются в прямых зависимостях у 129286 и 55289 NPM-пакетов. Пакеты были скомпрометированы из-за утечки параметров учётной записи Джоша Джунона (Josh Junon), который является сопровождающим debug-js, chalk и множества библиотек для консольных приложений.
В ходе фишинга сопровождающему от имени проекта NPM было отправлено email-уведомление о необходимости обновить параметры двухфакторной аутентификации. В письме было сказано, что пользователь не обновлял данные двухфакторной аутентификации более 12 месяцев и 10 сентября для предотвращения неавторизированного доступа все учётные данные с необновлёнными параметрами 2FA будут заблокированы.
Изображение
Сообщения отправлялись с адреса "support@npmjs.help" и вели на сайт npmjs.help, воспроизводящий сайт npmjs.com. Судя по всему, для введения пользователя в заблуждение использовались те же методы, что и для прошлых атак на PyPI, NPM и addons.mozilla.org, в которых для обхода защиты учётной записи при помощи двухфакторной аутентификации и создания ощущения работы с реальным каталогом NPM применялось прозрачное проксирование трафика с фишингового сайта на реальный сайт. Организовав работу npmjs.help как прокси для доступа к npmjs.com, атакующие контролировали весь трафик, включая активность на страницах ввода пароля входа и запроса второго фактора аутентификации.
В выпущенные атакующими обновления пакетов был подставлен вредоносный код, выполняемый на системах пользователей, работающих с сайтами или приложениями, использующими скомпрометированные версии пакетов. Вредоносная вставка для браузеров осуществляла перехват трафика и активности Web API, прикрепляя свои обработчики к функциям fetch и XMLHttpRequest, а также вмешивалась в работу типовых интерфейсов криптокошельков для скрытой подмены реквизитов получателя при переводе. Подмена осуществлялась на уровне модификации значений в запросах и ответах, незаметно для пользователя (в интерфейсе пользователя показывались корректные реквизиты). Поддерживались форматы транзакций Ethereum, Bitcoin, Solana, Tron, Litecoin и Bitcoin Cash.
В некоторых анонсах атаки на рассматриваемые NPM-пакеты также упоминается вредоносный код, выполняющий сбор и отправку ключей шифрования, паролей и токенов во время установки или запуска пакета. Детали по данной форме вредоносной вставки пока не приводятся.
Cкомпрометированные пакеты:
ПакетПиковое число загрузок в неделюЧисло зависимостейВерсия с вредоносным кодом ansi-styles524 млн36956.2.2 debug465 млн552894.4.2 supports-color450 млн429810.2.1 chalk436 млн1292865.6.1 strip-ansi326 млн96687.1.1 color-convert313 млн36783.1.1 color-name312 млн32142.0.1 ansi-regex302 млн32386.2.1 wrap-ansi235 млн62759.0.1 is-arrayish90 млн15280.3.3 slice-ansi81.8 млн9037.1.1 error-ex64.7 млн15441.3.3 color35 млн43435.0.1 supports-hyperlinks31.5 млн7924.1.1 color-string31 млн4112.1.1 simple-swizzle29.5 млн1210.2.3 has-ansi19.7 млн4226.0.1 chalk-template4.6 млн1391.1.1 backslash298 тысяч650.2.1
Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=63845

Жизнь за Нер'зула!

Ответить