Zranitelnost v NPM balíčku pac-resolver, který má 3 miliony stažení týdně

V balíčku NPM pac-resolver, který má více než 3 miliony stažení týdně, byla odhalena zranitelnost (CVE-2021-23406), jež umožňuje spuštění vlastního JavaScriptového kódu v kontextu aplikace při odesílání HTTP požadavků z projektů Node.js, které podporují funkci automatického nastavení proxy serveru.

Balíček pac-resolver provádí analýzu PAC souborů, které zahrnují skript pro automatické nastavení proxy serveru. PAC soubor obsahuje běžný JavaScriptový kód s funkcí FindProxyForURL, která určuje logiku výběru proxy na základě hostitele a dotazovaného URL. Podstata zranitelnosti spočívá v tom, že k provedení tohoto JavaScriptového kódu v pac-resolveru se používal poskytovaný API VM v Node.js, který umožňuje provádět JavaScriptový kód v jiném kontextu enginu V8.

Tento API je v dokumentaci výslovně označen jako nevhodný pro spouštění kódu, který není důvěryhodný, protože neposkytuje plnou izolaci spuštěného kódu a umožňuje přístup k původnímu kontextu. Problém byl vyřešen ve verzi pac-resolver 5.0.0, která byla převedena na použití knihovny vm2, jež poskytuje vyšší úroveň izolace vhodnou pro běh nedůvěryhodného kódu.

Zranitelnost v NPM balíčku pac-resolver, který má 3 miliony stažení týdně

Při používání zranitelné verze pac-resolveru může útočník pomocí speciálně vytvořeného PAC souboru dosáhnout spuštění svého JavaScriptového kódu v kontextu kódu projektu používajícího Node.js, pokud v tomto projektu jsou použity knihovny, které mají závislosti na pac-resolveru. Nejpopulárnější z problematických knihoven je Proxy-Agent, která je uvedena mezi závislostmi u 360 projektů, včetně urllib, aws-cdk, mailgun.js a firebase-tools, které celkově představují více než tři miliony stažení týdně.

Pokud aplikace závislá na pac-resolveru načte PAC soubor poskytovaný systémem podporujícím protokol automatického nastavení proxy WPAD, mohou útočníci s přístupem k místní síti využít šíření nastavení proxy prostřednictvím DHCP k injekci škodlivých PAC souborů.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster