CVE-2025-54313
Prettier eslint-config-prettier
2026-01-22
Prettier eslint-config-prettier contains an embedded malicious code vulnerability. Installing an affected package executes an install.js file that launches the node-gyp.dll malware on Windows.
Технический анализ и план устранения
Суть уязвимости
Уязвимость CVE-2025-54313 представляет собой классическую атаку на цепочку поставок (Supply Chain Attack). В легитимный пакет eslint-config-prettier (в определенные скомпрометированные версии) был внедрен вредоносный код.
Вектор атаки эксплуатирует механизм хуков жизненного цикла пакетного менеджера npm. При установке зараженного пакета автоматически запускается встроенный скрипт install.js. Если установка производится на операционной системе Windows, этот скрипт инициирует загрузку и выполнение вредоносной динамической библиотеки node-gyp.dll. Это приводит к скрытой компрометации рабочей станции разработчика или CI/CD сервера, что может повлечь за собой кражу учетных данных, исходного кода или дальнейшее продвижение злоумышленников по корпоративной сети.
Как исправить
- Немедленно удалите скомпрометированный пакет из вашего проекта, чтобы предотвратить его дальнейшее распространение и случайный запуск.
npm uninstall eslint-config-prettier
- Очистите глобальный кэш пакетного менеджера. Это необходимо для того, чтобы вредоносная версия не была установлена повторно из локального хранилища при последующих сборках.
npm cache clean --force
- Удалите файлы блокировок и директорию с модулями, чтобы гарантировать чистую установку дерева зависимостей.
rm -rf node_modules package-lock.json
- Установите заведомо безопасную (пропатченную) версию пакета, официально выпущенную мейнтейнерами после устранения инцидента.
npm install eslint-config-prettier@latest --save-dev
- Инициируйте процедуру реагирования на инциденты (Incident Response) для систем Windows, на которых производилась установка пакета. Удаление npm-пакета не удаляет уже внедренное в систему вредоносное ПО. Необходимо провести поиск индикаторов компрометации (IoC), в частности, найти и изолировать файл
node-gyp.dll, а также проверить систему антивирусным ПО и EDR-решениями.
Временные меры
- Глобально отключите выполнение скриптов жизненного цикла (
preinstall,install,postinstall) в npm. Это заблокирует автоматический запуск вредоносногоinstall.jsпри загрузке любых пакетов.
npm config set ignore-scripts true
- Если глобальное отключение ломает сборку других легитимных пакетов, используйте флаг игнорирования скриптов локально при каждой новой установке подозрительных или обновляемых модулей.
npm install --ignore-scripts
-
Зафиксируйте строгие версии всех зависимостей в
package.json. Удалите символы каретки (^) и тильды (~) перед версиейeslint-config-prettier, чтобы предотвратить автоматическое обновление до потенциально зараженных минорных версий или патчей при выполненииnpm install. -
Регулярно проверяйте дерево зависимостей на наличие известных уязвимостей с помощью встроенного аудита.
npm audit