TGViewer
Frontend | Иван Усынин Frontend | Иван Усынин @usyninis_dev · 118 subscribers
Post #195 206

Forwarded from Zar Zakharov | Lead Developer

🚨 Новость, о которой говорят.

Случилась самая масштабная атака на экосистему JavaScript: хакеры через фишинг увели npm-аккаунт популярного мейнтейнера Qix и запушили обновления в 18 ключевых пакетов (`chalk`, debug, strip-ansi, color-convert и др.) — суммарно это 2,6 млрд загрузок в неделю.

Уверен, у вас это уже обсуждают в рабочих чатах. Но что можно сделать прямо сейчас, чтобы обезопасить себя?

Пошаговая инструкция

1. Проверить, используются ли в проекте эти либы:


npm ls ansi-styles debug chalk supports-color strip-ansi ansi-regex wrap-ansi color-convert color-name is-arrayish slice-ansi color color-string simple-swizzle supports-hyperlinks has-ansi chalk-template backslash error-ex


Более точная проверка (по конкретным заражённым версиям):


npm ls 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 error-ex@1.3.3


2. Проверить lock-файлы (важно даже если в package.json всё ок):
– Проверить наличие пакетов:


grep -E 'ansi-styles|debug|chalk|supports-color|strip-ansi|ansi-regex|wrap-ansi|color-convert|color-name|is-arrayish|slice-ansi|color|color-string|simple-swizzle|supports-hyperlinks|has-ansi|chalk-template|backslash|error-ex' \
package-lock.json yarn.lock pnpm-lock.yaml 2>/dev/null


– Проверить заражённые версии:


grep -E '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|error-ex@1.3.3' \
package-lock.json yarn.lock pnpm-lock.yaml 2>/dev/null


3. Если нашли — удалить заражённые версии:


npm cache clean --force
rm -rf node_modules
rm -f package-lock.json yarn.lock pnpm-lock.yaml
npm install # или yarn / pnpm


4. Залочить безопасные релизы:
– В npm можно добавить блок "overrides" в package.json:


{
"overrides": {
"chalk": "<5.6.1 || >5.6.1",
"debug": "<4.4.2 || >4.4.2"
// и так далее по списку
}
}


Это запретит ставить заражённые версии, но позволит брать старые или новые безопасные.

– В yarn/pnpm проще закрепить конкретную безопасную версию, например:


{
"resolutions": {
"chalk": "5.6.0"
}
}


⚡️ Советую не откладывать в долгий ящик проверку своих продуктов. Если что-то нашли — заводите задачу, подключайте всех ответственных.

Ну и пересылайте инструкцию своим коллегам.

Ну что, нашли зараженный пакет у себя в проекте?

Let’s keep in touch | 🚀 Дать Boost
  • 👍 1
  • 🔥 1
More from @usyninis_dev
  1. Sep 21, 2026cva: когда обычного сlsx уже мало Пока у кнопки два состояния — «обычная» и «выключенная»…
  2. Jul 25, 2026RBAC и permission-based проверки на frontend: как мы управляем доступом на проекте 🔐 В бо…
  3. Jul 17, 2026Remotion: make videos programmatically 📹 Remotion — это программный фреймворк, который по…
  4. Apr 12, 2026Выступил с лекцией в ITHub В минувшую субботу в колледже информационных и креативных техно…
  5. Mar 8, 2026Поздравляю прекрасных дам с 8 Марта! Пусть весна цветет не только на улице, но и в душе! Н…
  6. Mar 2, 2026React.lazy — еще один полезный сценарий 🚀 Одни из самых популярных кейсов использования R…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →