Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн загрузок в неделю

В NPM-пакете pac-resolver, насчитывающем более 3 млн загрузок в неделю, выявлена уязвимость (CVE-2021-23406), которая позволяет добиться выполнения своего JavaScript-кода в контексте приложения при отправке HTTP-запросов из Node.js-проектов, поддерживающих функцию автонастройки прокси-сервера.

Пакет pac-resolver осуществляет разбор PAC-файлов, включающих сценарий автоматической настройки прокси-сервера. PAC-файл содержит обычный JavaScript-код с функцией FindProxyForURL, определяющей логику выбора прокси в зависимости от хоста и запрашиваемого URL. Суть уязвимости в том, что для выполнения данного JavaScript-кода в pac-resolver применялся предоставляемый в Node.js API VM, позволяющий выполнить JavaScript-код в другом контексте движка V8.

Указанный API явно помечен в документации как не предназначенный для запуска кода, не заслуживающего доверия, так как он не предоставляет полноценной изоляции запускаемого кода и позволяет получить доступ к изначальному контексту. Проблема устранена в выпуске pac-resolver 5.0.0, который переведён на использование библиотеки vm2, предоставляющей более высокий уровень изоляции, подходящий для запуска не заслуживающего доверия кода.

Уязвимость в NPM-пакете pac-resolver, насчитывающем 3 млн загрузок в неделю

При использовании уязвимой версии pac-resolver атакующий через передачу специально оформленного PAC-файла может добиться выполнения своего JavaScript-кода в контексте кода проекта, использующего Node.js, если в данном проекте используются библиотеки, связанные зависимостями с pac-resolver. Наиболее популярной из проблемных библиотек является Proxy-Agent, указанная в зависимостях у 360 проектов, включая urllib, aws-cdk, mailgun.js и firebase-tools, в сумме насчитывающих более трёх миллионов загрузок в неделю.

Если приложение, связанное зависимостями с pac-resolver, загружает PAC-файл, предоставляемый системой с поддержкой протокола автоматической настройки прокси WPAD, то для подстановки вредоносных PAC-файлов злоумышленники, имеющие доступ к локальной сети, могут воспользоваться распространением настроек прокси через DHCP.

Подписаться
Уведомить о
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии