Не устанавливайте 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 — пакет может быть заражён.
- jaynetics
Скомпрометированный код на самом деле не был выпущен. В этом разборе много информации:
- yuvalkarmi
Это было 3 недели назад, народ. Это БЫЛА реальная компрометация репозитория — код попал в main ветку Zod, но не в npm.
21 сентября кто-то использовал git-учётные данные Колина, чтобы запушить этот скомпрометированный код в проект, Колин это заметил и откатил в тот же день (PR #6620). Затем он выпустил 4.6.6 11 октября, но в ней НЕ было заражённого кода.
Кстати, Zod был не единственным пакетом-целью — та же атака была предпринята против standard-schema и nub. Nub ДОБРАЛСЯ до npm, но сканирование на вредоносное ПО в npm его заблокировало.
Похоже на легитимную (ну, нелегитимную) попытку атаки на цепочку поставок, но ни один реальный релиз Zod не был скомпрометирован.
- luggage_bazooka
В самой последней версии 4.6.6 есть очень интересный коммит (d821685) "Fix bugs and improve performance", который содержит следующие изменения https://github.com/colinhacks/zod/commit/d821685ea6732436fcd...
Я не изучал, что именно делает packages/mini/meta.test.mjs, но выглядит это не очень хорошо
- jaapz
«Может быть» — довольно мягко сказано, он заражён — РЕДАКТИРОВАНО: заголовок изменили, раньше было "может быть заражён".
Вредоносное ПО, похоже, внедряет какой-то JS-пейлоад, который выполняется при установке zod, загружая его из смарт-контракта Ethereum (если я правильно понял).
Не забудьте пометить версию на npm.
РЕДАКТИРОВАНО: похоже, обновление так и не попало на NPM: https://news.ycombinator.com/item?id=50053253
- xx_ns
Интересно, что они добавили ключ `preinstall` (который должен запускать вредоносный скрипт при установке) в корень package.json, а не в `scripts`, так что, насколько я могу судить, при установке это не запустится.
В остальном да, это похоже на загрузчик первой стадии для получения и выполнения пейлоада из Ethereum mainnet.