⚠️ Атака на популярные NPM-пакеты — технические детали
КраткоНесколько часов назад взломщики получили доступ к некоторым NPM-аккаунтам и опубликовали заражённые версии популярных библиотек.
Множество веб-продуктов используют эти пакеты.
Хотя продукты TON, судя по всему, не в опасности, разработчикам мультичейн-продуктов стоит проверить свой код, особенно если вы сегодня что-то релизили.
Список скомпрометированных версий:
• ansi-styles@6.2.2
• debug@4.4.2
• chalk@5.6.1
• supports-color@10.2.1
• strip-ansi@7.1.1
• ansi-regex@6.2.1
• wrap-ansi@9.0.1
• color-convert@3.1.1
• color-name@2.0.1
• is-arrayish@0.3.3
• slice-ansi@7.1.1
• color@5.0.1
• color-string@2.1.1
• simple-swizzle@0.2.3
• supports-hyperlinks@4.1.1
• has-ansi@6.0.1
• chalk-template@1.1.1
• backslash@0.2.1
Важно: только эти конкретные версии заражены. Все более ранние и более новые версии считаются безопасными.
Что делают заражённые пакеты • Подменяют адреса крипто-кошельков.
• Перехватывают и перенаправляют крипто-трaнзакции в продуктах, которые используют эти пакеты.
Под ударом блокчейны: Ethereum, Bitcoin, Bitcoin Cash, TRON, Litecoin, Solana.
Блокчейн TON в список не входит.
Ваш веб-продукт в зоне риска, если:
• Он работает с Ethereum, Bitcoin, Bitcoin Cash, TRON, Litecoin, Solana.
и
• Вы собирали его пару часов назад;
или
• Ваши зависимости подгружаются динамически, без фиксированной версии (лучше никогда так не делайте).
Как проверитьВ package-lock.json поищите версии и пакеты из списка выше.
Если версия хотя бы одного из указанных пакетов совпадает со скомпрометированной — значит, проект заражён.
Как исправитьДля всех пакетов уже опубликованы исправления либо откат на предыдущую версию.
Сделайте npm install и пересоберите проект.
Источникиhttps://jdstaerk.substack.com/p/we-just-found-malicious-code-in-thehttps://github.com/chalk/chalk/issues/656#issuecomment-3266900029https://github.com/debug-js/debug/issues/1005#issuecomment-3266868187https://github.com/advisories/GHSA-8mgj-vmr8-frr6https://www.aikido.dev/blog/npm-debug-and-chalk-packages-compromised