Атака на Axios: как через скомпрометированный npm-аккаунт раздавали троян на три платформы сразу

Axios — один из самых популярных JavaScript-пакетов для HTTP-запросов, его скачивают больше 83 миллионов раз в неделю. 31 марта 2026 года через него начали распространять кроссплатформенный троян удалённого доступа. Атака была проведена через цепочку поставок: злоумышленник скомпрометировал npm-аккаунт основного мейнтейнера проекта и внедрил вредоносную зависимость в две ветки релизов.
Атака на Axios: как через скомпрометированный npm-аккаунт раздавали троян на три платформы сразу
Изображение носит иллюстративный характер

Скомпрометированными оказались версии Axios 1.14.1 и 0.30.4. Атакующий получил доступ к учётной записи "jasonsaayman" — главного мейнтейнера Axios на npm. По всей видимости, был украден долгоживущий классический токен доступа npm. Почта аккаунта была изменена на адрес Proton Mail, контролируемый злоумышленником. Публикация заражённых версий шла напрямую через npm, полностью обходя CI/CD-пайплайн проекта на GitHub Actions. То есть код вообще не проходил через обычный процесс сборки и проверки.
Вредоносный код при этом не затронул исходники самого Axios. Вместо этого в runtime-зависимости пакета была добавлена библиотека "plain-crypto-js" версии 4.2.1, опубликованная с аккаунта "nrwise". Именно внутри этой фейковой библиотеки был спрятан обфусцированный Node.js-дроппер под названием "setup.js", запускавшийся через postinstall-скрипт. Схема была выстроена аккуратно: за 18 часов до основной атаки подготовили саму вредоносную зависимость, 30 марта 2026 года в 23:59 UTC опубликовали обновлённую версию "plain-crypto-js" с полезной нагрузкой, а 31 марта в 00:21 UTC уже вышла заражённая версия Axios. Вторая скомпрометированная версия появилась в 01:00 UTC. Обе ветки релизов были поражены в окне длиной 39 минут.
После установки дроппер обращался к серверу управления на домене sfrclak[.]com (порт 8000) и в зависимости от операционной системы выбирал одну из трёх веток атаки. На macOS запускался AppleScript, который загружал бинарный RAT на C++, сохранял его по пути /Library/Caches/com.apple.act.mond, делал исполняемым и запускал в фоне через /bin/zsh. После этого сам AppleScript удалялся. URL для получения нагрузки маскировался как . Троян снимал «отпечатки» системы, связывался с командным сервером каждые 60 секунд, мог запускать произвольные команды и шелл, обходить файловую систему и самоуничтожаться.
Для Windows схема была другой. Дроппер находил путь к PowerShell, записывал VBScript во временную директорию и использовал его для загрузки PowerShell-трояна. RAT сохранялся как %PROGRAMDATA%\wt.exe, маскируясь под приложение Windows Terminal. URL нагрузки — . На Linux и прочих системах через execSync запускалась shell-команда, скачивавшая Python-скрипт RAT в /tmp/ld.py и запускавшая его в фоне через nohup. Адрес загрузки — .
Отдельного внимания заслуживает механизм самоочистки. Малварь проходила три шага: удаляла postinstall-скрипт из директории установленного пакета, стирала вредоносный package.json с упоминанием postinstall-хука, а затем переименовывала чистый файл "package.md" (заранее включённый в plain-crypto-js) в "package.json". Если кто-то потом заглядывал в node_modules, следов заражения уже не было видно.
Исследователи из StepSecurity и лично Ашиш Курми обнаружили и описали атаку. Компания Socket параллельно выявила ещё два пакета, распространявших тот же самый малварь. Пакет @shadanai/openclaw в версиях 2026.3.28-2, 2026.3.28-3, 2026.3.31-1 и 2026.3.31-2 содержал "plain-crypto-js", спрятанный глубоко в вендорных зависимостях. А пакет @qqbrowser/openclaw-qbot версии 0.0.130 поставлялся с уже модифицированной версией Axios прямо внутри своих node_modules.
Что делать тем, кого это коснулось? Первым делом — ротация всех секретов и учётных данных. Axios нужно откатить на версию 1.14.0 или 0.30.3. Пакет "plain-crypto-js" надо вычистить из node_modules вручную. На сетевом уровне стоит заблокировать исходящий трафик к домену sfrclak[.]com. Необходимо проверить логи CI/CD на предмет сборок, которые устанавливали заражённые версии.
И, наконец, нужно поискать на серверах и рабочих машинах артефакты: /Library/Caches/com.apple.act.mond на macOS, %PROGRAMDATA%\wt.exe на Windows, /tmp/ld.py на Linux. Если что-то из этого найдено — систему следует считать полностью скомпрометированной. Не «возможно скомпрометированной», а именно полностью. Со всеми вытекающими из этого мерами реагирования.


Новое на сайте

19641OpenAI залатала две дыры: как через ChatGPT и Codex утекали данные пользователей 19640Утечки секретов ускоряются быстрее, чем индустрия успевает их затыкать 19639Метавселенная всё-таки умерла? 19638Почему люди до сих пор верят, что пришельцы создали древние цивилизации? 19637Растения у Колорадо крадут подземные воды, усугубляя засуху в и без того истощённом... 19636Уязвимость ShadowPrompt: как любой сайт мог молча захватить браузер через расширение... 19635Может ли война с Ираном оставить голодными 363 миллиона человек по всему миру? 19634Зачем роботам терять конечности, если ИИ научился собирать их заново за секунды? 19633Шахматы по телеграфу — первый в истории киберспорт? 19632Почему фреймворки LangChain и LangGraph ставят под удар файлы, секреты и базы данных... 19631Почему кошки приручили нас, а не мы их? 19630Что нашли дайверы на дне эгейского моря в бриге лорда Элгина? 19629Почему 65 000 лет назад в Европе выжила только одна линия неандертальцев? 19628DeepLoad: как поддельное окно Windows крадёт пароли и расползается по флешкам 19627Почему три китайские хакерские группировки одновременно атаковали одно правительство в...
Ссылка