Вредоносные пакеты в npm Red Hat: supply chain снова горит
Множество npm-пакетов Red Hat Cloud Services оказались скомпрометированы — вредоносный код выполнялся при установке через postinstall-скрипты. 749 баллов и 428 комментариев за сутки: npm-экосистема снова стала полем боя.
Что произошло
На GitHub появился issue #492 в репозитории RedHatInsights/javascript-clients: множество npm-пакетов Red Hat Cloud Services содержали вредоносный код, который выполнялся автоматически при установке через postinstall-скрипты.
Компания StepSecurity опубликовала подробный разбор — атака затронула несколько пакетов в scope @redhat-cloud-services. Это не первый подобный случай: за последние месяцы аналогичным атакам подверглись axios, TanStack и другие популярные пакеты.
Что говорит тред
«No Way to Prevent This, Says Only package manager Where This Regularly Happens» — jofzar, перефразируя известный заголовок The Onion
Самый конструктивный комментарий — от eranation, который уже в прошлых инцидентах предлагал cooldown на установку пакетов: задержка в 1-2 дня перед тем, как новая версия станет доступна для скачивания. Yarn 4 уже поддерживает эту функцию. Пакет dmix подтвердил: их компания использует yarn 4 с cooldown, и ни один из последних инцидентов их не затронул.
Инженер king_zee рассказал о флаге --before=дата: при установке npm выбирает версию, опубликованную до указанной даты. Простой, но эффективный способ избежать свежих компрометаций.
Инженер insanitybit предложил системный подход: любой этап, где код выполняется (npm install, npm test), должен происходить в среде без привилегированного сетевого доступа. Если postinstall-скрипт не может связаться с C2-сервером — атака бессмысленна.
Интересное совпадение, на которое обратил внимание kitd: в тот же день Red Hat и IBM анонсировали Project Lightwell — инструмент для обнаружения и устранения уязвимостей в supply chain.
Что это значит
npm остаётся единственным крупным пакетным менеджером, где postinstall-скрипты запускаются по умолчанию при каждой установке. Решения существуют: cooldown, sandbox, --ignore-scripts. Но ни одно из них не включено по умолчанию. Каждый новый инцидент — это не новая проблема, а повторение старой, которую npm отказывается решать на уровне платформы.
Получайте такие разборы каждый день
Главные истории Hacker News на русском — в Telegram или RSS-ридере.
Meta дала ИИ-боту кнопку «сбросить пароль». Хакеры нажали первыми
Чат-бот службы поддержки Instagram отправил код верификации на почту злоумышленника по первой просьбе — без проверки личности, без подтверждения по старому адресу. Telegram-каналы перепродавали аккаунты с редкими юзернеймами за тысячи долларов.