Ranljivost v paketu pac-resolver NPM s 3 milijoni prenosov na teden

Paket pac-resolver NPM, ki ima več kot 3 milijone prenosov na teden, ima ranljivost (CVE-2021-23406), ki omogoča izvajanje kode JavaScript v kontekstu aplikacije pri pošiljanju zahtev HTTP iz projektov Node.js, ki podpira funkcijo samodejne konfiguracije strežnika proxy.

Paket pac-resolver razčleni datoteke PAC, ki vključujejo samodejni konfiguracijski skript proxy. Datoteka PAC vsebuje običajno kodo JavaScript s funkcijo FindProxyForURL, ki definira logiko za izbiro proxyja glede na gostitelja in zahtevani URL. Bistvo ranljivosti je v tem, da je bil za izvajanje te kode JavaScript v pac-resolverju uporabljen VM API, na voljo v Node.js, ki vam omogoča izvajanje kode JavaScript v drugačnem kontekstu motorja V8.

Naveden API je v dokumentaciji izrecno označen, da ni namenjen izvajanju nezaupljive kode, saj ne zagotavlja popolne izolacije kode, ki se izvaja, in omogoča dostop do izvirnega konteksta. Težava je bila odpravljena v pac-resolverju 5.0.0, ki je bil premaknjen na uporabo knjižnice vm2, ki zagotavlja višjo raven izolacije, primerno za izvajanje nezaupljive kode.

Ranljivost v paketu pac-resolver NPM s 3 milijoni prenosov na teden

Pri uporabi ranljive različice pac-resolverja lahko napadalec prek prenosa posebej zasnovane datoteke PAC doseže izvedbo svoje kode JavaScript v kontekstu kode projekta, ki uporablja Node.js, če ta projekt uporablja knjižnice, ki imajo odvisnosti. s pac-resolverjem. Najbolj priljubljena med problematičnimi knjižnicami je Proxy-Agent, ki je navedena kot odvisna od 360 projektov, vključno z urllib, aws-cdk, mailgun.js in firebase-tools, s skupno več kot tremi milijoni prenosov na teden.

Če aplikacija, ki je odvisna od pac-resolverja, naloži datoteko PAC, ki jo zagotovi sistem, ki podpira protokol za samodejno konfiguracijo proxyja WPAD, lahko napadalci z dostopom do lokalnega omrežja uporabijo distribucijo nastavitev proxy prek DHCP za vstavljanje zlonamernih datotek PAC.

Vir: opennet.ru

Dodaj komentar