Haavatavus pac-resolver NPM-paketis, 3 miljonit allalaadimist nädalas

Pac-resolver NPM-paketil, mida nädalas allalaaditakse üle 3 miljoni, on haavatavus (CVE-2021-23406), mis võimaldab selle JavaScripti koodi käivitada rakenduse kontekstis, kui saadate HTTP-päringuid Node.js-projektidest, mis toetada puhverserveri automaatse konfigureerimise funktsiooni.

Pakett pac-resolver parsib PAC-faile, mis sisaldavad automaatset puhverserveri konfiguratsiooniskripti. PAC-fail sisaldab tavalist JavaScripti koodi koos funktsiooniga FindProxyForURL, mis määrab puhverserveri valimise loogika sõltuvalt hostist ja taotletavast URL-ist. Haavatavuse olemus seisneb selles, et selle JavaScripti koodi käivitamiseks pac-resolveris kasutati failis Node.js pakutavat VM API-d, mis võimaldab käivitada JavaScripti koodi V8 mootori teises kontekstis.

Määratud API on dokumentatsioonis sõnaselgelt märgitud kui ebausaldusväärse koodi käitamiseks ette nähtud, kuna see ei taga käitatava koodi täielikku isoleerimist ja võimaldab juurdepääsu algsele kontekstile. Probleem on lahendatud versioonis pac-resolver 5.0.0, mis on viidud kasutama vm2 teeki, mis tagab ebausaldusväärse koodi käitamiseks sobiva kõrgema isolatsioonitaseme.

Haavatavus pac-resolver NPM-paketis, 3 miljonit allalaadimist nädalas

Pac-resolveri haavatava versiooni kasutamisel võib ründaja spetsiaalselt loodud PAC-faili edastamise kaudu saavutada oma JavaScripti koodi käivitamise Node.js-i kasutava projekti koodi kontekstis, kui see projekt kasutab sõltuvustega teeke pac-resolveriga. Kõige populaarsem probleemsetest raamatukogudest on Proxy-Agent, mis on loetletud 360 projekti, sealhulgas urllib, aws-cdk, mailgun.js ja firebase-tools sõltuvusena, kokku üle kolme miljoni allalaadimise nädalas.

Kui pac-resolverist sõltuv rakendus laadib WPAD-puhverserveri automaatse konfiguratsiooniprotokolli toetava süsteemi pakutava PAC-faili, saavad kohalikule võrgule juurdepääsu omavad ründajad pahatahtlike PAC-failide sisestamiseks kasutada puhverserveri sätete levitamist DHCP kaudu.

Allikas: opennet.ru

Lisa kommentaar