Аптасына 3 миллион жүктеп алынатын pac-resolver NPM пакетіндегі осалдық

Аптасына 3 миллионнан астам жүктеп алынатын pac-resolver NPM бумасының осалдығы (CVE-2021-23406) бар, ол Node.js жобаларынан HTTP сұрауларын жіберу кезінде JavaScript кодын қолданба контекстінде орындауға мүмкіндік береді. прокси серверді автоматты конфигурациялау функциясын қолдау.

Pac-resolver бумасы автоматты прокси конфигурация сценарийін қамтитын PAC файлдарын талдайды. PAC файлында хост пен сұралған URL мекенжайына байланысты проксиді таңдау логикасын анықтайтын FindProxyForURL функциясы бар кәдімгі JavaScript коды бар. Осалдықтың мәні осы JavaScript кодын pac-resolver бағдарламасында орындау үшін V8 қозғалтқышының басқа контекстінде JavaScript кодын орындауға мүмкіндік беретін Node.js ішінде берілген VM API пайдаланылғанында.

Көрсетілген API құжаттамада сенімсіз кодты іске қосуға арналмаған деп нақты белгіленген, себебі ол іске қосылатын кодтың толық оқшаулануын қамтамасыз етпейді және бастапқы мәтінмәнге қол жеткізуге мүмкіндік береді. Мәселе pac-resolver 5.0.0 нұсқасында шешілді, ол vm2 кітапханасын пайдалану үшін жылжытылды, ол сенімсіз кодты іске қосу үшін қолайлы оқшаулаудың жоғары деңгейін қамтамасыз етеді.

Аптасына 3 миллион жүктеп алынатын pac-resolver NPM пакетіндегі осалдық

Pac-resolver бағдарламасының осал нұсқасын пайдаланған кезде, шабуылдаушы арнайы әзірленген PAC файлын жіберу арқылы жобаның коды контекстінде Node.js арқылы, егер бұл жобада тәуелділіктері бар кітапханалар пайдаланылса, оның JavaScript кодын орындауға қол жеткізе алады. pac-resolver көмегімен. Проблемалық кітапханалардың ең танымалы urllib, aws-cdk, mailgun.js және firebase-құралдарын қоса алғанда, аптасына үш миллионнан астам жүктеп алынатын 360 жобаға тәуелділік ретінде тізімделген Proxy-Agent болып табылады.

Егер pac-resolver-ге тәуелділіктері бар қолданба WPAD прокси автоматты конфигурация протоколын қолдайтын жүйемен қамтамасыз етілген PAC файлын жүктесе, жергілікті желіге қатынасы бар шабуылдаушылар зиянды PAC файлдарын кірістіру үшін DHCP арқылы прокси параметрлерін таратуды пайдалана алады.

Ақпарат көзі: opennet.ru

пікір қалдыру