Supply chain атака на Axios в npm

Популярный JavaScript-клиент Axios, используемый для HTTP-запросов, был временно скомпрометирован в npm. Инцидент стал одной из самых заметных атак на цепочку поставок в open-source за последнее время.

Библиотека загружается более 400 миллионов раз в месяц, поэтому даже кратковременная компрометация затрагивает огромное количество проектов.

Что произошло

Исследователи обнаружили, что в npm были опубликованы две вредоносные версии пакета: axios@1.14.1 и axios@0.30.4.

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

Вредоносные версии находились в реестре около 2–3 часов, после чего были удалены.

Механика атаки

В сам код Axios изменения не вносились. Вместо этого в зависимости был добавлен пакет plain-crypto-js@4.2.1, не используемый в библиотеке.

Этот пакет выполнял postinstall-скрипт, который загружал и запускал кроссплатформенный RAT.

Вредоносный код автоматически выполнялся при установке:

npm install axios@1.14.1

После установки происходило выполнение скрытого скрипта:

// внутри plain-crypto-js
// выполняется автоматически через postinstall
node setup.js

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

После выполнения вредоносный компонент мог удалять следы своего присутствия, маскируя атаку.

Масштаб и последствия

Axios широко используется в веб-приложениях, мобильных клиентах и backend-сервисах, а также в CI/CD пайплайнах.

Любая система, которая выполнила установку в период публикации вредоносных версий, могла быть скомпрометирована без изменения исходного кода проекта.

Особенно уязвимыми оказались автоматизированные сборки, которые подтягивают зависимости без фиксации версий.

Признаки компрометации

Одним из индикаторов является наличие уязвимых версий Axios в lock-файлах:

grep -E '"axios"' package-lock.json | grep -E '1\.14\.1|0\.30\.4'

Проверка наличия вредоносной зависимости:

npm ls plain-crypto-js

Также можно искать директорию напрямую:

find node_modules -name "plain-crypto-js" -type d

Итог атаки

Атака была выполнена через официальный пакет, а не через поддельные или сторонние зависимости. Злоумышленники использовали доверие к популярной библиотеке и доступ к аккаунту мейнтейнера для распространения вредоносного кода.

Источник: Dark Reading

Комментарии (0)

Войдите, чтобы оставить комментарий

Похожие статьи

Кибербезопасность 3 месяца назад

Уязвимость MongoDB CVE-2025-14847 активно эксплуатируется

CVE-2025-14847 (MongoBleed) - это серьёзная уязвимость в MongoDB, которую можно эксплуатировать без авторизации и которая уже используется злоумышленниками. Если вы используете MongoDB, крайне важно своевременно обновить сервер или применить временные меры защиты.

Кибербезопасность 1 месяц назад

Google экстренно исправил активно эксплуатируемую 0-Day уязвимость в Chrome

Google устранил активно эксплуатируемую уязвимость нулевого дня CVE-2026-2441 в браузере Chrome. Ошибка типа use-after-free позволяла выполнять произвольный код через специально подготовленную веб-страницу. Пользователям рекомендуется срочно обновить браузер.