Уразлівасць у 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.

Крыніца: opennet.ru

Дадаць каментар