В популярних пакетах JavaScript виявили загрозу для криптогаманців


Зловмисники отримали доступ до акаунта відомого розробника на платформі NPM і вбудували шкідливий код у його пакети. Про це повідомив технічний директор Ledger Шарль Гійоме.
🚨 There’s a large-scale supply chain attack in progress: the NPM account of a reputable developer has been compromised. The affected packages have already been downloaded over 1 billion times, meaning the entire JavaScript ecosystem may be at risk.
The malicious payload works…
— Charles Guillemet (@P3b7_) 8 вересня 2025
«Сталася масштабна атака на ланцюг постачання: був скомпрометований акаунт авторитетного розробника на NPM. Уражені пакети завантажили вже понад мільярд разів, і це створює загрозу для всієї екосистеми JavaScript», — написав він.
Пізніше з’ясувалося, що йдеться про Джоша Джунона. Він заявив, що став жертвою фішингу: на його пошту прийшов лист нібито від підтримки NPM із вимогою оновити 2FA. Перейшовши за посиланням, розробник відкрив хакерам доступ до популярних пакетів, зокрема Chalk.
Користувач JD повідомив, що першим помітив збій у процесі CI/CD. Під час перевірки він і його колега знайшли «навмисно заплутаний код», який виявився шкідливим.
«Програма шукала криптовалютні гаманці та намагалася викрасти кошти. Виклик функції fetch, через який зламалася збірка, був частиною спроби відправити викрадені дані. Збірка впала лише тому, що версія Node.js не підтримувала fetch. У сучасному середовищі атака могла б залишитися непоміченою», — пояснив він.
Як працював шкідливий код і як захиститися
За словами Гійоме, під найбільшим ризиком опинилися користувачі програмних гаманців. Власники апаратних пристроїв, які підтверджують кожну транзакцію, захищені значно краще.
Засновник DeFi Llama 0xngmi уточнив, що шкідливий код не може миттєво викрасти кошти — користувач у будь-якому випадку має підтвердити транзакцію.
Explanation of the current npm hack
In any website that uses this hacked dependency, it gives a chance to the hacker to inject malicious code, so for example when you click a “swap” button on a website, the code might replace the tx sent to your wallet with a tx sending money to…
— 0xngmi (@0xngmi) 8 вересня 2025
«Якщо сайт використовує заражену залежність npm, хакер може впровадити код і підмінити транзакцію. Наприклад, при натисканні кнопки „обмін“ замість стандартного переказу можна відправити кошти зловмиснику. Однак у гаманці користувач все одно побачить підозрілу операцію і повинен буде її підтвердити», — пояснив він.
JD додав, що шкідливий код підмінював криптоадреси двома методами:
- Пасивний — якщо гаманець не виявлявся, вірус змінював базові функції браузера і за допомогою алгоритму Левенштейна підставляв максимально схожий адрес із бази зловмисників;
- Активний — втручався у процес підписання транзакцій і змінював адресу отримувача безпосередньо перед відправкою. Якщо користувач не перевіряв дані вручну, кошти йшли хакерам.
«Метою атаки є викрадення BTC, ETH, SOL, TRX, LTC і BCH. Екран фінального підтвердження — ваша остання лінія оборони. Уважно перевіряйте кожен символ адреси отримувача в застосунку чи на екрані апаратного гаманця перед підтвердженням транзакції», — застеріг керівник розвитку екосистеми Okto Мінал Тукрал.
Розробник під ніком ultra повідомив, що заражені пакети були виправлені 8 вересня о 15:15 UTC.
ok so just to clarify, the update to these packages started today around 13:16 UTC and was patched around 15:15 UTC (i was coding around this time)
it seems to mostly be a browser interceptor basically overriding transactions on frontends with this dependency however we don’t…
— ultra (@0x_ultra) 8 вересня 2025
Інженер під ніком cygaar підтвердив, що команда NPM відключила скомпрометовані версії.
За даними Security Alliance, збитки від атаки наразі обмежилися лише $50.
Нагадаємо, раніше дослідники ReversingLabs виявили шкідливий код у репозиторії NPM, який маскувався під смартконтракти Ethereum.