Sebezhetőség a pac-resolver NPM csomagban, heti 3 millió letöltéssel

A hetente több mint 3 millió letöltést elérő pac-resolver NPM-csomag egy biztonsági réssel (CVE-2021-23406) rendelkezik, amely lehetővé teszi a JavaScript-kód futtatását az alkalmazás kontextusában, amikor HTTP-kéréseket küld a Node.js projektekből, amelyek támogatja a proxyszerver automatikus konfigurálási funkcióját.

A pac-resolver csomag elemzi az automatikus proxykonfigurációs parancsfájlt tartalmazó PAC-fájlokat. A PAC-fájl normál JavaScript-kódot tartalmaz egy FindProxyForURL funkcióval, amely meghatározza a proxy kiválasztásának logikáját a gazdagéptől és a kért URL-címtől függően. A sérülékenység lényege, hogy ennek a JavaScript-kódnak a pac-resolverben történő végrehajtásához a Node.js-ben biztosított VM API-t használták, amely lehetővé teszi a JavaScript kód futtatását a V8-as motor eltérő környezetében.

A megadott API kifejezetten meg van jelölve a dokumentációban, mint amely nem megbízható kód futtatására szolgál, mivel nem biztosítja a futtatott kód teljes elkülönítését, és lehetővé teszi az eredeti környezethez való hozzáférést. A probléma megoldódott a pac-resolver 5.0.0-ban, amely átkerült a vm2 könyvtár használatára, amely magasabb szintű elkülönítést biztosít, amely alkalmas nem megbízható kód futtatására.

Sebezhetőség a pac-resolver NPM csomagban, heti 3 millió letöltéssel

A pac-resolver sebezhető verziójának használatakor a támadó egy speciálisan kialakított PAC-fájl továbbításával elérheti JavaScript-kódjának végrehajtását egy Node.js-t használó projekt kódjának kontextusában, ha ez a projekt függőségekkel rendelkező könyvtárakat használ. pac-resolverrel. A problémás könyvtárak közül a legnépszerűbb a Proxy-Agent, amely 360 projekt függőségeként szerepel, köztük az urllib, aws-cdk, mailgun.js és firebase-tools, összesen több mint hárommillió letöltést hetente.

Ha egy olyan alkalmazás, amely függ a pac-resolvertől, egy olyan rendszertől származó PAC-fájlt tölt be, amely támogatja a WPAD proxy automatikus konfigurációs protokollját, akkor a helyi hálózathoz hozzáféréssel rendelkező támadók a proxybeállítások DHCP-n keresztüli elosztását használhatják rosszindulatú PAC-fájlok beszúrására.

Forrás: opennet.ru

Hozzászólás