30–31 березня 2026 року в реєстрі npm з'явилися дві шкідливі версії популярної HTTP-бібліотеки axios. Інцидент стався через компрометацію акаунта одного з мейнтейнерів. Версії axios@1.14.1 та axios@0.30.4 встановлювали троян віддаленого доступу (RAT) на комп'ютери розробників під управлінням macOS, Windows та Linux.
Axios — один із найпопулярніших JavaScript-клієнтів, який є стандартною залежністю в проєктах Laravel, що використовують Vite, Inertia або інші інструменти збірки на базі Node.
# Що сталося
Як повідомляє блог StepSecurity, зловмисник захопив npm-акаунт основного мейнтейнера axios (jasonsaayman), змінивши контактну пошту на адресу в Proton Mail. Використовуючи цей доступ, хакер опублікував нові версії, додавши до них одну фальшиву залежність — plain-crypto-js@4.2.1.
Цей пакет маскувався під легітимну бібліотеку crypto-js, але містив обфускований postinstall скрипт (setup.js), який виконував роль дроппера для кросплатформового RAT. Примітно, що в самому axios змінився лише файл package.json — решта з понад 85 вихідних файлів залишилися ідентичними до оригінальних.
# Як працювала атака
Видання Venturebeat повідомляє:
Зловмисник не змінював вихідний код Axios. Натомість обидві гілки релізу отримали нову залежність — plain-crypto-js@4.2.1. Жодна частина коду її не імпортує. Пакет існує виключно для запуску скрипту після встановлення, який завантажує RAT на машину розробника.
Підготовка була ретельною. За 18 годин до релізу axios хакер випустив «чисту» версію plain-crypto-js з іншого акаунта, щоб сформувати історію публікацій та обійти автоматичні сканери. Потім з'явилася шкідлива версія 4.2.1. Шкідливе ПЗ самознищується після виконання та повертає чистий
package.json, щоб приховати сліди втручання.Експерти StepSecurity та Socket назвали це однією з найбільш технічно досконалих атак на ланцюжок постачання (supply chain attack) проти пакетів з топ-10 npm.
# Як це впливає на Laravel
Це не є вразливістю самого Laravel, проте команда фреймворку вже оголосила про превентивні заходи для захисту спільноти:
Якщо ви встановлювали або оновлювали axios протягом останніх 24 годин, обов’язково перевірте свою систему.
Що зробила команда Laravel:
- Зафіксувала (pinned) безпечні версії axios у репозиторії laravel/laravel.
- Оновила laravel/installer: тепер інсталяція пакетів за замовчуванням запускається з прапором
--ignore-scripts. - Заблокувала домен зловмисника в інфраструктурі Laravel Cloud.
Розробник Pushpak також опублікував скрипт для сканування локального комп'ютера на наявність вразливих інсталяцій.
# Що вам варто зробити
Якщо ви використовували axios@1.14.1 або axios@0.30.4, будь-яку машину, на якій запускався npm install, слід вважати скомпрометованою. StepSecurity рекомендує:
- Видалити шкідливі пакети та зафіксувати безпечну версію (
axios@1.14.0або0.30.3). - Перевірити наявність артефактів RAT за відомими шляхами файлів.
- Змінити всі паролі, ключі доступу та токени на постраждалих системах.
- Перевстановити операційну систему на скомпрометованих машинах.