Не устанавливайте Zod 4.6.6 — пакет может быть заражён

Zod 4.6.6 compromised by malware?

В коммите к репозиторию Zod обнаружен вредоносный код: в версии 4.6.6 добавлен скрипт preinstall, который через eth_call обращается к Ethereum-контракту, получает список доменов и загружает с них полезную нагрузку. Изменения также затрагивают workflow-файл, из-за чего публикация в npm теперь запускается автоматически при пуше в main. Пользователям рекомендуется не обновляться до 4.6.6.

Не устанавливайте Zod 4.6.6 — пакет может быть заражён.
  1. jaynetics

    Скомпрометированный код на самом деле не был выпущен. В этом разборе много информации:

    https://github.com/orgs/community/discussions/208477

  2. yuvalkarmi

    Это было 3 недели назад, народ. Это БЫЛА реальная компрометация репозитория — код попал в main ветку Zod, но не в npm.

    21 сентября кто-то использовал git-учётные данные Колина, чтобы запушить этот скомпрометированный код в проект, Колин это заметил и откатил в тот же день (PR #6620). Затем он выпустил 4.6.6 11 октября, но в ней НЕ было заражённого кода.

    Кстати, Zod был не единственным пакетом-целью — та же атака была предпринята против standard-schema и nub. Nub ДОБРАЛСЯ до npm, но сканирование на вредоносное ПО в npm его заблокировало.

    Похоже на легитимную (ну, нелегитимную) попытку атаки на цепочку поставок, но ни один реальный релиз Zod не был скомпрометирован.

  3. luggage_bazooka

    В самой последней версии 4.6.6 есть очень интересный коммит (d821685) "Fix bugs and improve performance", который содержит следующие изменения https://github.com/colinhacks/zod/commit/d821685ea6732436fcd...

    Я не изучал, что именно делает packages/mini/meta.test.mjs, но выглядит это не очень хорошо

  4. jaapz

    «Может быть» — довольно мягко сказано, он заражён — РЕДАКТИРОВАНО: заголовок изменили, раньше было "может быть заражён".

    Вредоносное ПО, похоже, внедряет какой-то JS-пейлоад, который выполняется при установке zod, загружая его из смарт-контракта Ethereum (если я правильно понял).

    Не забудьте пометить версию на npm.

    РЕДАКТИРОВАНО: похоже, обновление так и не попало на NPM: https://news.ycombinator.com/item?id=50053253

  5. xx_ns

    Интересно, что они добавили ключ `preinstall` (который должен запускать вредоносный скрипт при установке) в корень package.json, а не в `scripts`, так что, насколько я могу судить, при установке это не запустится.

    В остальном да, это похоже на загрузчик первой стадии для получения и выполнения пейлоада из Ethereum mainnet.

Ещё за этот день

2026-10-12