The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Скомпрометирован NPM-пакет axios, имеющий 100 млн загрузок в неделю

31.03.2026 22:35 (MSK)

Злоумышленники смогли перехватить учётную запись сопровождающего и выпустить два вредоносных выпуска NPM-пакета axios, предлагающего реализацию HTTP-клиента для браузеров и Node.js. Пакет axios насчитывает более 100 млн загрузок в неделю и используется в качестве зависимости у 174 тысяч других пакетов. Вредоносные изменения были интегрированы в выпуски Axios 1.14.1 и 0.30.4 через подстановку фиктивной зависимости plain-crypto-js 4.2.1, содержащей код для загрузки компонентов, принимающих команды с управляющего сервера злоумышленников. Вредоносные выпуски предлагались для загрузки 31 марта в течение почти 3 часов - с 03:21 по 6:15 (MSK).

Вредоносные версии были размещены в NPM напрямую с использованием учётных данных главного сопровождающего проекта axios ("jasonsaayman") в обход штатного механизма публикации новых релизов на базе GitHub Actions. Предполагается, атакующие смогли перехватить у сопровождающего токен доступа к NPM, после чего вошли в учётную запись и поменяли привязку к email. Как именно был перехвачен токен доступа не уточняется.

Запускаемый вредоносный код размещался в пакете plain-crypto-js в файле setup.js, активировался после завершения установки NPM-пакета через обработчик postinstall ('postinstall: "node setup.js"') и использовался для загрузки и установки трояна, поражающего системы с Windows, macOS и Linux. Для скрытия своего присутствия после запуска вредоносный компонент удалял файл setup.js и заменял package.json на вариант без postinstall-хука.

В macOS вредоносный исполняемый файл загружался как "/Library/Caches/com.apple.act.mond", в Windows - "%PROGRAMDATA%\wt.exe", в Linux - "/tmp/ld.py,". После активации в Linux и macOS каждые 60 секунд на внешний сервер атакующих отправлялся запрос команд для исполнения на поражённой системе, которые могли использоваться для загрузки дополнительных вредоносных компонентов, выполнения произвольных shell-команд и поиска/отправки определённых файлов.

Вредоносная активность в Linux и macOS не предусматривала сохранение присутствия после перезагрузки и была рассчитана на быстрый сбор конфиденциальных данных, паролей, токенов и ключей доступа. В Windows создавался файл "%PROGRAMDATA%\system.bat", который извлекал вредоносный компонент с сервера атакующих при каждом входе в систему.

  1. Главная ссылка к новости (https://socket.dev/blog/axios-...)
  2. OpenNews: При помощи червя Shai-Hulud скомпрометировано 600 NPM-пакетов
  3. OpenNews: Атакующие получили контроль над NPM-пакетами проекта DuckDB и опубликовали вредоносные выпуски
  4. OpenNews: Скомпрометированы 18 NPM-пакетов, насчитывающих более 2 миллиардов загрузок в неделю
  5. OpenNews: NPM-пакет Stylus был по ошибке заблокирован из-за подозрений в наличии вредоносного кода
  6. OpenNews: Злоумышленники смогли внедрить бэкдор в NPM-пакет от разработчиков криптовалюты XRP
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65109-npm
Ключевые слова: npm, hack
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (11) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (2), 22:44, 31/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Во черт! Надеюсь я npm install позже писал.
     
  • 1.3, Tron is Whistling (?), 22:44, 31/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хорошая новость.
    Нужно больше лефтпадов в крейтах.
     

  • 1.7, Аноним (7), 23:14, 31/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кучно пошли, к дождю...
     
  • 1.9, Анрним (?), 23:25, 31/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Миллионы глаз на изи нашли. Что происходит в менеджерах где 10 калек на в расте никто не знает и знать не хочет.
     
  • 1.10, Аноним (10), 23:44, 31/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Как именно был перехвачен токен доступа не уточняется.

    Да известно как это делается. Либо через почту, либо через GitHub Actions.

     
     
  • 2.13, Аноним (13), 00:32, 01/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Неужели не из-за ошибок памяти си?
     

  • 1.12, q (ok), 00:11, 01/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    axios уже давно не нужен, есть нативный fetch(). Внимание! Если вам кажется, что в axios есть какая-то киллер-фича, то я заявлю, что она легко реализуется без axios -- при помощи dependency injection. Точка. Если вы используете axios как DI-контейнер (представляете? есть и такие!), то вы глупец, ничего не смыслящий в UNIX-принципе "каждая либа должна заниматься только одной хренью."
     
     
  • 2.14, Аноним (14), 00:33, 01/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А вот и целевая аудитория таких взломов. Рассуждает о абсолютно неважных вещах, лишь бы не задумываться о том, что такое NPM-пакеты.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру