Zraniteľnosť v balíku pac-resolver NPM s 3 miliónmi stiahnutí za týždeň

Balík pac-resolver NPM, ktorý má viac ako 3 milióny stiahnutí za týždeň, má chybu zabezpečenia (CVE-2021-23406), ktorá umožňuje spustenie jeho kódu JavaScript v kontexte aplikácie pri odosielaní požiadaviek HTTP z projektov Node.js, ktoré podporuje funkciu automatickej konfigurácie proxy servera.

Balík pac-resolver analyzuje súbory PAC, ktoré obsahujú automatický konfiguračný skript proxy. Súbor PAC obsahuje bežný kód JavaScript s funkciou FindProxyForURL, ktorá definuje logiku výberu servera proxy v závislosti od hostiteľa a požadovanej adresy URL. Podstatou tejto zraniteľnosti je, že na spustenie tohto kódu JavaScript v pac-resolveri sa použilo rozhranie VM API poskytnuté v Node.js, ktoré vám umožňuje spustiť kód JavaScript v inom kontexte motora V8.

Špecifikované API je v dokumentácii výslovne označené ako nie určené na spustenie nedôveryhodného kódu, keďže neposkytuje úplnú izoláciu spusteného kódu a umožňuje prístup k pôvodnému kontextu. Problém bol vyriešený v pac-resolver 5.0.0, ktorý bol presunutý na používanie knižnice vm2, ktorá poskytuje vyššiu úroveň izolácie vhodnej pre spustenie nedôveryhodného kódu.

Zraniteľnosť v balíku pac-resolver NPM s 3 miliónmi stiahnutí za týždeň

Pri použití zraniteľnej verzie pac-resolver môže útočník prostredníctvom prenosu špeciálne navrhnutého súboru PAC dosiahnuť spustenie svojho kódu JavaScript v kontexte kódu projektu pomocou Node.js, ak tento projekt používa knižnice, ktoré majú závislosti. s pac-resolverom. Najpopulárnejšou z problematických knižníc je Proxy-Agent, ktorá je uvedená ako závislá na 360 projektoch vrátane urllib, aws-cdk, mailgun.js a firebase-tools, ktoré celkovo stiahnu viac ako tri milióny stiahnutí za týždeň.

Ak aplikácia, ktorá je závislá na pac-resolver, načíta súbor PAC poskytnutý systémom, ktorý podporuje protokol automatickej konfigurácie proxy WPAD, útočníci s prístupom k lokálnej sieti môžu použiť distribúciu nastavení proxy cez DHCP na vloženie škodlivých súborov PAC.

Zdroj: opennet.ru

Pridať komentár