CVE-2021-21315

Npm package System Information Library for Node.JS

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2022-01-18

Официальное описание

In this vulnerability, an attacker can send a malicious payload that will exploit the name parameter. After successful exploitation, attackers can execute remote.

🛡️
Технический анализ и план устранения

Суть уязвимости

Уязвимость (CWE-78) в библиотеке systeminformation позволяет выполнить произвольные команды на операционной системе. Атакующий может внедрить вредоносные команды в параметр name функции si.inetChecksite(). При обработке этого параметра библиотека некорректно санирует данные, что приводит к выполнению команд оболочки с привилегиями процесса Node.js.

Как исправить

Обновите пакет systeminformation до исправленной версии.

  • Минимальная версия с исправлением: 5.3.1
  • Рекомендуемая версия: Последняя стабильная версия (на момент написания — 5.21.11).

Команды для обновления:

# Проверьте текущую версию в проекте
npm list systeminformation

# Обновите пакет в проекте
npm update systeminformation

# Или установите конкретную исправленную версию
npm install systeminformation@5.3.1

Для глобально установленного пакета:

npm update -g systeminformation

После обновления перезапустите все приложения и сервисы, зависящие от этого пакета.

Временное решение

Если немедленное обновление невозможно, примите следующие меры:

  1. Ограничение входных данных: Проверьте код приложения на использование функции si.inetChecksite() или других методов, принимающих пользовательский ввод. Реализуйте строгую валидацию и санацию всех передаваемых в библиотеку параметров (например, разрешайте только буквенно-цифровые символы и точки для доменных имен).
  2. Запуск с минимальными привилегиями: Убедитесь, что процесс Node.js (или контейнер), в котором работает уязвимый код, запущен от имени непривилегированного пользователя (без прав root или администратора).
  3. Сетевые ограничения: Если функция используется для проверки внешних ресурсов, ограничьте исходящие сетевые подключения приложения с помощью брандмауэра только до необходимых доверенных адресов.