Вразливість у 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 застосовувався API VM, що надається в Node.js, що дозволяє виконати 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.

Джерело: opennet.ru

Додати коментар або відгук