Vulnerabilità nel pacchetto pac-resolver NPM con 3 milioni di download a settimana

Il pacchetto pac-resolver NPM, che conta oltre 3 milioni di download a settimana, presenta una vulnerabilità (CVE-2021-23406) che consente l'esecuzione del suo codice JavaScript nel contesto dell'applicazione quando si inviano richieste HTTP da progetti Node.js che supporta la funzione di configurazione automatica del server proxy.

Il pacchetto pac-resolver analizza i file PAC che includono uno script di configurazione proxy automatica. Il file PAC contiene un normale codice JavaScript con una funzione FindProxyForURL che definisce la logica per la scelta di un proxy in base all'host e all'URL richiesto. L'essenza della vulnerabilità è che per eseguire questo codice JavaScript in pac-resolver è stata utilizzata l'API VM fornita in Node.js, che consente di eseguire il codice JavaScript in un contesto diverso del motore V8.

L'API specificata è contrassegnata esplicitamente nella documentazione come non destinata all'esecuzione di codice non attendibile, poiché non fornisce l'isolamento completo del codice in esecuzione e consente l'accesso al contesto originale. Il problema è stato risolto in pac-resolver 5.0.0, che è stato spostato per utilizzare la libreria vm2, che fornisce un livello di isolamento più elevato adatto all'esecuzione di codice non affidabile.

Vulnerabilità nel pacchetto pac-resolver NPM con 3 milioni di download a settimana

Quando si utilizza una versione vulnerabile di pac-resolver, un utente malintenzionato attraverso la trasmissione di un file PAC appositamente progettato può ottenere l'esecuzione del suo codice JavaScript nel contesto del codice di un progetto utilizzando Node.js, se questo progetto utilizza librerie che hanno dipendenze con risolutore pac. La più popolare delle librerie problematiche è Proxy-Agent, elencata come dipendenza su 360 progetti, tra cui urllib, aws-cdk, mailgun.js e firebase-tools, per un totale di oltre tre milioni di download a settimana.

Se un'applicazione che ha dipendenze da pac-resolver carica un file PAC fornito da un sistema che supporta il protocollo di configurazione automatica del proxy WPAD, gli aggressori con accesso alla rete locale possono utilizzare la distribuzione delle impostazioni proxy tramite DHCP per inserire file PAC dannosi.

Fonte: opennet.ru

Aggiungi un commento