NPM paketis pac-resolver, millel on ĂŒle 3 miljoni allalaadimise nĂ€dalas, avastati haavatavus (CVE-2021-23406), mis vĂ”imaldab kĂ€ivitada oma JavaScript-koodi rakenduse kontekstis, saates HTTP-pĂ€ringuid Node.js projektidest, mis toetavad automaatse proxy seadistamise funktsiooni.
Paket pac-resolver analĂŒĂŒsib PAC-faile, mis sisaldavad automaatse proxy seadistamise skripti. PAC-fail sisaldab tavalist JavaScript-koodi, millel on funktsioon FindProxyForURL, mis mÀÀrab, kuidas valida proxy sĂ”ltuvalt hostist ja pĂ€ringu URL-ist. Haavatavuse olemus seisneb selles, et pac-resolver kasutab veel Node.js API-d VM, mis vĂ”imaldab kĂ€itada JavaScript-koodi teises V8 mootori kontekstis.
Antud API on dokumentatsioonis selgelt mĂ€rgitud kui mitte usaldusvÀÀrse koodi kĂ€itamiseks, kuna see ei paku tĂ€is isoleerimist kĂ€itatavale koodile ning vĂ”imaldab juurde pÀÀseda algsele kontekstile. Probleem on lahendatud pac-resolveri vĂ€ljaandes 5.0.0, mis on ĂŒle viidud vm2 raamatukogu kasutamisele, pakkudes kĂ”rgemat taset isoleerimises, sobilikku usaldusvÀÀrsete koodide kĂ€itamiseks.

Haavatava versiooni pac-resolver kasutamisel vĂ”ib rĂŒndaja, edastades spetsiaalselt vormindatud PAC-faili, saavuta oma JavaScript-koodi kĂ€itamise projektikoodi kontekstis, mis kasutab Node.js-i, kui antud projektis kasutatakse pac-resolveriga seotud sĂ”ltuvusi. KĂ”ige populaarsem probleemne teek on Proxy-Agent, mida on kasutatud 360 projekti sĂ”ltuvustes, sealhulgas urllib, aws-cdk, mailgun.js ja firebase-tools, mille kogusumma ĂŒletab ĂŒle kolme miljoni allalaadimise nĂ€dalas.
Kui rakendus, mis on pac-resolveriga seotud sĂ”ltuvustes, laadib alla PAC-faili, mis on saadud sĂŒsteemilt, mis toetab automaatse proxy seadistamise protokolli WPAD, siis saavad pahatahtlikud isikud, kellel on juurdepÀÀs kohaliku vĂ”rgu, Ă€ra kasutada DHCP kaudu proxy seadeid, et vahetada pahatahtlikke PAC-faile.
Allikas: opennet.ru
