Перетяжка, Премия ТПрогер, 13.11
Перетяжка, Премия ТПрогер, 13.11
Перетяжка, Премия ТПрогер, 13.11

🔥 2 млрд загрузок под ударом: в npm нашли вредоносные версии chalk, debug и еще 16 пакетов

Новости

Возможно, это самая масштабная JS-атака в истории

2К открытий7К показов
🔥 2 млрд загрузок под ударом: в npm нашли вредоносные версии chalk, debug и еще 16 пакетов

Компания Aikido Security выявила масштабную атаку на экосистему npm. Злоумышленники опубликовали вредоносные версии 18 популярных JavaScript-библиотек, включая chalk, debug, supports-color, ansi-styles, strip-ansi и другие.

Эти пакеты используются в миллионах проектов по всему миру — общее количество загрузок только за неделю превышает 2 млрд.

Как работал вредоносный код

Внедренный JavaScript-код маскировался внутри библиотек и выполнялся исключительно в браузерной среде. Основная цель — перехват криптовалютных транзакций через подмену данных:

  • внедрение в методы fetch, XMLHttpRequest, а также Web3-объекты (window.ethereum и др.);
  • отслеживание и подмена адресов кошельков при вызовах вроде sendTransaction, approve, transfer;
  • использование «похожих» адресов для подмены без визуального отличия;
  • манипуляции с параметрами транзакций на этапе подписи;
  • сохранение внешней «нормальности» интерфейса, чтобы пользователь ничего не заметил.

Таким образом, атака была нацелена на незаметное хищение криптоактивов прямо из интерфейсов Web3-приложений.

Как злоумышленники получили доступ

Один из мейнтейнеров, обладающий доступом к части библиотек, стал жертвой фишинговой атаки.

Он получил письмо с поддельного адреса support@npmjs.help, зарегистрированного 5 сентября 2025 года. После компрометации аккаунта были опубликованы вредоносные версии пакетов.

Автор позднее подтвердил взлом и удалил некоторые версии, но часть вредоносных сборок осталась доступной, включая simple-swizzle.

Список затронутых пакетов

Наиболее популярные зараженные библиотеки:

  • chalk
  • debug
  • supports-color
  • strip-ansi
  • ansi-regex
  • wrap-ansi
  • color-name
  • color-convert
  • color-string
  • chalk-template
  • has-flag
  • has-ansi
  • slice-ansi
  • error-ex
  • simple-swizzle
  • backslash
  • и другие

Большинство из них используются транзитивно — через другие зависимости.

Что делать разработчикам

  1. Проверить package-lock.json или yarn.lock на наличие зараженных версий.
  2. Использовать npm audit, snyk, Safe Chain или аналогичные инструменты для анализа зависимостей.
  3. Обновить или зафиксировать безопасные версии пакетов.
  4. Если проект работает с криптовалютой, проверить, не было ли компрометации в процессе использования.

Почему это важно

Эта атака стала одной из крупнейших в истории JavaScript-экосистемы и подчеркивает уязвимость цепочек поставки (supply chain) в open-source.

Даже небольшая уязвимость или фишинговая атака на одного мейнтейнера может поставить под угрозу миллионы пользователей по всему миру.

Следите за новыми постами
Следите за новыми постами по любимым темам
2К открытий7К показов