



В npm-пакете axios (клиент HTTPS) нашли троян удалённого доступа: атакованы версии 1.14.1 и 0.30.4
30 марта 2026 года специалисты компании StepSecurity обнаружили в npm-реестре две вредоносные версии самого популярного JavaScript HTTP-клиента axios – 1.14.1 и 0.30.4. Злоумышленники взломали аккаунт одного из мейнтейнеров проекта (jasonsaayman) и добавили в зависимости пакет [email protected], который при установке запускает RAT-дроппер для Windows, macOS и Linux. Заражённые версии пробыли в реестре около трёх часов, но за это время их успели скачать тысячи разработчиков – как в локальных проектах, так и в CI/CD-пайплайнах.
Компания StepSecurity провела сообщественный вебинар по этому инциденту 1 апреля в 10:00 по тихоокеанскому времени.
Вредоносный код находится не внутри самого axios, а в подставной зависимости plain-crypto-js. Взломанный мейнтейнер опубликовал две версии axios, в package.json которых появилась строчка:
При этом во всём коде axios нет ни одного require() или import этого пакета. Единственная цель зависимости – запустить postinstall-скрипт, который и выполняет RAT-дроппер.
Сам plain-crypto-js – это искусно подделанная копия легитимной библиотеки crypto-js от Evan Vosberg. Злоумышленник за 18 часов до основной атаки опубликовал “чистую” версию 4.2.0 с аккаунта [email protected], чтобы создать видимость нормальной истории пакета. А уже в 4.2.1 добавил postinstall: "node setup.js" и сам скрипт setup.js (4,2 КБ обфусцированного кода).
setup.js написан на Node.js и работает на всех платформах. Вот его логика в упрощённом виде:
Каждая платформа получает свой POST-боди при обращении к C2:
macOS: packages.npm.org/product0
Windows: packages.npm.org/product1
Linux: packages.npm.org/product2
Это сделано для маскировки трафика под легитимные запросы к npm.
После выполнения setup.js дроппер удаляет себя, удаляет
Читать на habr.com