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 обязательно


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

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

     
     
  • 2.13, Аноним (13), 00:32, 01/04/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Неужели не из-за ошибок памяти си?
     
     
  • 3.21, Аноним (2), 03:44, 01/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Не, если бы GitHub был на си а не на руби, то можно было бы зайти от рута, пошарить по их хостингу, забрать токены с нужных реп, а потом грузить по ним что хоч.
     

  • 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 [^] [^^] [^^^] [ответить]  
  • –4 +/
    А вот и целевая аудитория таких взломов. Рассуждает о абсолютно неважных вещах, лишь бы не задумываться о том, что такое NPM-пакеты.
     
     
  • 3.17, q (ok), 02:08, 01/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Аудитория таких взломов -- те, кто ставят все пакеты подряд, лишь бы не задумываться о том, что каждый новый пакет усложняет сопровождение проекта и ставит его под угрозу supply chain attacks.
     
     
  • 4.23, Аноним (2), 03:49, 01/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Да, минусы есть. Но зато шустренько код пишеться, как будто не программируешь, а просто по клаве стучишь, фреймворки там усе переваривают, проблемки решают и заказчики довольны.
     
     
  • 5.29, Аноним (29), 07:20, 01/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    ога, по клаве бьешь do this ticket don't make any mistakes

    и потом просишь закомммтить и задеплоитьб


    и все это даже не приходя в сознание

     
  • 2.28, Аноним (28), 07:20, 01/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Unix принципы? В JS и фронте?? Чего?))
     

  • 1.15, Аноним (15), 01:24, 01/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как хорошо что я всю эту js бяку запускаю в докере)
     
     
  • 2.16, Аноним (16), 01:41, 01/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну когда-то ведь она из докера выходит, либо к тебе, либо к пользователям твоего продукта. Шило в мешке не утаишь.
     

  • 1.18, 12yoexpert (ok), 02:16, 01/04/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    раз в неделю одно и тоже: что питон, что жс, что раст
     
     
  • 2.25, Аноним (2), 04:47, 01/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Мда, на бреинфаке нет, переходи на него. А хотя, стой ты же с си... Э-э-э... Ничего не делай.
     
  • 2.26, Аноним (-), 04:54, 01/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > что раст

    Мимо. В случаях с crates.io был только тайпсквоттинг.

     
     
  • 3.27, Аноним (2), 04:58, 01/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> что раст
    > Мимо. В случаях с crates.io был только тайпсквоттинг.

    Расслабься, сегодня ему попался матерый буфер, считать пришлось на калькуляторе. Так что он не в духе.

     
     
  • 4.30, Аноним (30), 08:36, 01/04/2026 [^] [^^] [^^^] [ответить]  
  • +/
    какие же любители раста токсичные
     

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



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

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