React2Shell: Как один npm-пакет чуть не уничтожил доверие к open source

Разработчик случайно наткнулся на вредоносный npm-пакет, который маскировался под React — и это могло произойти с каждым.
Вы когда-нибудь смотрели на список зависимостей и думали: "Ну, React — это же святое, его точно не подменят"? А вот и зря. Один разработчик обнаружил, что npm-пакет под названием react2shell — это не новая библиотека для рендеринга в терминале, а троянский конь, готовый выполнить любую команду злоумышленника.
Как это работает?
Пакет имитирует популярный React, но при установке запускает скрипт, который открывает удалённый доступ к вашей машине. Никакой магии: просто вредоносный код в postinstall-хуке. По сути, это как если бы вы пригласили сантехника, а он оказался домушником.
Разработчик Лахлан (да, тот самый парень из Новой Зеландии) заметил неладное, когда пакет в его проекте неожиданно начал скачивать бинарники. Он вовремя забил тревогу, и пакет удалили из реестра. Но вопрос остаётся: сколько ещё таких "реактов" дремлет в npm?
Эта история — отличное напоминание о том, что open source держится на честном слове и code review. Не будьте как тот разработчик, который ставит пакет, не глядя на его содержимое. Используйте npm audit, проверяйте зависимости и думайте дважды, прежде чем установить "React 2.0" с 5 звёздами и нулём скачиваний.
Комментарий студии METABYTE: Мы всегда говорили: доверяй, но проверяй. Особенно когда речь о зависимостях. Наши аудиты кода помогут вам спать спокойно, не боясь, что в ваш прод пробрался "react2shell".