Компрометація пакетів npm debug та chalk

Вітаю, я Віталій Містряков, спеціаліст із компанії Digicode. Хочу поділитися важливою інформацією в україномовному просторі, адже ця тема, на жаль, поки що мало обговорюється. Сподіваюся, цей матеріал допоможе захистити ваш проєкт чи стартап від потенційних загроз.

Починаючи з 8 вересня 2025 року, 13:16 UTC, я звернув увагу на повідомлення від Aikido Security про серію пакетів, опублікованих на npm, які містили шкідливий код. Як зазначено в оригінальній статті від Чарлі Еріксена на Aikido Security, було скомпрометовано 18 популярних пакетів:

  • backslash (0.26 млн завантажень на тиждень)
  • chalk-template (3.9 млн завантажень на тиждень)
  • supports-hyperlinks (19.2 млн завантажень на тиждень)
  • has-ansi (12.1 млн завантажень на тиждень)
  • simple-swizzle (26.26 млн завантажень на тиждень)
  • color-string (27.48 млн завантажень на тиждень)
  • error-ex (47.17 млн завантажень на тиждень)
  • color-name (191.71 млн завантажень на тиждень)
  • is-arrayish (73.8 млн завантажень на тиждень)
  • slice-ansi (59.8 млн завантажень на тиждень)
  • color-convert (193.5 млн завантажень на тиждень)
  • wrap-ansi (197.99 млн завантажень на тиждень)
  • ansi-regex (243.64 млн завантажень на тиждень)
  • supports-color (287.1 млн завантажень на тиждень)
  • strip-ansi (261.17 млн завантажень на тиждень)
  • chalk (299.99 млн завантажень на тиждень)
  • debug (357.6 млн завантажень на тиждень)
  • ansi-styles (371.41 млн завантажень на тиждень)

Ці пакети були оновлені для включення шкідливого коду, який виконується на клієнтській стороні вебсайтів, перехоплюючи активність crypto та web3 у браузері, маніпулюючи взаємодіями з гаманцями та перенаправляючи платежі на контрольовані зловмисниками адреси без явних ознак для користувача, як описано в оригінальній статті.

Що сталося?

Як зазначено в статті Aikido, ці пакети почали отримувати нові версії, які містили обфусцирований код. Наприклад, у пакеті is-arrayish файл index.js був змінений, щоб включити шкідливий код, який після деобфускації виявився складною програмою для перехоплення криптовалютних транзакцій. Цей код сканує та замінює адреси гаманців для різних криптовалют, таких як Ethereum, Bitcoin, Solana, Tron, Litecoin та Bitcoin Cash, на адреси, контрольовані зловмисником.

Шкідливе ПЗ працює як перехоплювач у браузері, втручаючись у функції, такі як fetch, XMLHttpRequest та API гаманців, щоб змінювати запити та відповіді. Воно замінює легітимні адреси на подібні за виглядом, що ускладнює виявлення маніпуляцій.

Як працює шкідливе ПЗ (крок за кроком)

За інформацією з оригінальної статті, механізм дії шкідливого ПЗ включає наступні етапи:

  1. Впровадження в браузер
    Перехоплює функції, такі як fetch, XMLHttpRequest та API гаманців (window.ethereum, Solana тощо), дозволяючи контролювати веб-трафік та активність гаманців.
  2. Стеження за чутливими даними
    Сканує відповіді мережі та транзакції на наявність адрес гаманців або переказів у різних форматах криптовалют.
  3. Заміна цілей
    Замінює легітимні адреси на контрольовані зловмисником, використовуючи логіку зіставлення рядків для створення «подібних» адрес.
  4. Перехоплення транзакцій перед підписом
    Маніпулює параметрами транзакцій Ethereum та Solana (наприклад, отримувачами, схваленнями), перенаправляючи кошти до атакера, навіть якщо інтерфейс виглядає коректно.
  5. Непомітність
    Уникає очевидних замін в інтерфейсі, якщо виявлено крипто-гаманець, і працює в фоновому режимі для зміни транзакцій.

Реакція мейнтейнера

Як повідомляється в статті Aikido, після сповіщення мейнтейнера на Bluesky о 15:15 UTC він підтвердив, що знає про компрометацію та почав очищення скомпрометованих пакетів.

Оригінальна стаття:
www.aikido.dev/...​halk-packages-compromised

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Новий інцидент. Shai-Hulud 2.0.

Про даний інцидент стало відомо 24 листопада.

Популярні проекти що стосуються Zapier, ENS Domains, PostHog, Postman були тимчасово заражені. ~700 npm пакетів.

Вплинуло на понад 25 000 GitHub репозиторіїв, близько 350 унікальних користувачів.

Sonatype також відмічає, що і ChatGPT і Gemini, некоректно класифікували шкідливі пакети як безпечні, у відповідь на запит проаналізувати payload, що вказує на обмеження використання agentic та generative ШІ для код ревью.

Посилання:

www.wiz.io/...​going-supply-chain-attack

www.aikido.dev/...​ifferences-from-last-time

www.sonatype.com/...​tackers-innovating-on-npm

P.S. Credit: випадково побачив цю новину на Youtube в заставці блогера на російській мові, Михаїла Ларченко, а далі почав читати джерела.

P.P.S. Не публікую окремим топіком, просто не певний що це багатьом цікаво на DOU

В одному з попередніх інцидентів, встигнуло вплинути навіть на розробників, у яких було встановлене VSCode розширення Nx Console, і не було вимкнене автоматичне оновлення — запуск шкідливого postinstall.

github.com/...​ories/GHSA-cxm3-wv7p-598c

Новий інцидент. Понад 180 пакетів. Payload на комп’ютерах розробників.

snyk.io/...​ootstrap-releases-on-npm

www.sonatype.com/...​-attack-exposes-new-risks

Додав в окремій темі: dou.ua/forums/topic/55720

Сподіваюся, цей матеріал допоможе захистити ваш проєкт чи стартап від потенційних загроз.

І як саме цей матеріал допоможе?
Розповідайте вже тоді що таке Supply Chain Attack, SBOM security, private repository і repository firewall. І як правильно мейнтейнити депенденсі в SDLC.

Можна спробувати оновити уразливі версії залежностей. Водночас, уже сама поінформованість про потенційну проблему є корисною.
На жаль, детальний розбір того, які саме це атаки та як їх уникати, виходить за межі цієї статті. Дякую за пропозицію — я досліджу цю тему й, можливо, у майбутньому підготую окремий матеріал.

Підписатись на коментарі