Nel blocco dell'adware Adblock Plus una vulnerabilità, possibile organizzare l'esecuzione di codice JavaScript nel contesto dei siti, in caso di utilizzo di filtri non verificati, preparati da malintenzionati (ad esempio, collegando set di regole di terze parti o sostituendo le regole durante un attacco MITM).
Gli autori delle liste con i set di filtri possono organizzare l'esecuzione del proprio codice nel contesto dei siti aperti dall'utente attraverso l'aggiunta di regole con l'operatore ««, consentendo di sostituire parte dell'URL. L'operatore rewrite non consente di sostituire l'host nell'URL, ma permette di manipolare liberamente gli argomenti della richiesta. Come maschera per la sostituzione è consentito utilizzare solo testo, mentre l'inserimento di tag script, object e subdocument .
Tuttavia, l'esecuzione del codice può essere ottenuta attraverso un percorso alternativo.
Alcuni siti, tra cui Google Maps, Gmail e Google Images, utilizzano una tecnica di caricamento dinamico di blocchi JavaScript eseguibili, trasmessi in forma di testo semplice. Se il server consente il reindirizzamento delle richieste, si può ottenere un rerouting verso un altro host modificando i parametri dell'URL (ad esempio, nel contesto di Google, il reindirizzamento può essere effettuato tramite l'API ««). Oltre agli host che consentono il reindirizzamento, l'attacco può essere effettuato anche contro servizi che consentono la pubblicazione di contenuti dagli utenti (hosting di codice, piattaforme di pubblicazione di articoli, ecc.).
Il metodo di attacco proposto colpisce solo le pagine che caricano dinamicamente stringhe di codice JavaScript (ad esempio, tramite XMLHttpRequest o Fetch) e poi li eseguono. Un'altra importante limitazione è la necessità di utilizzare un reindirizzamento o di pubblicare dati arbitrari sul server sorgente che fornisce la risorsa. Tuttavia, come dimostrazione della rilevanza dell'attacco, è stato mostrato come organizzare l'esecuzione del proprio codice all'apertura di maps.google.com, utilizzando un reindirizzamento tramite «google.com/search».
La correzione è attualmente in fase di preparazione. Il problema colpisce anche i blocchi e . Il bloccante uBlock Origin non è soggetto al problema, in quanto non supporta l'operatore «rewrite». Un tempo, l'autore di uBlock Origin
aggiungere il supporto al rewrite, facendo riferimento a potenziali problemi di sicurezza e all'insufficienza delle limitazioni a livello host (invece del rewrite è stata proposta l'opzione querystrip per pulire i parametri della richiesta anziché sostituirli).
Gli sviluppatori di Adblock Plus ritengono che sia poco probabile che si verifichino attacchi reali, poiché tutte le modifiche nelle liste di regole standard vengono sottoposte a revisione e l'uso di liste di terze parti è estremamente raro da parte degli utenti. La sostituzione delle regole tramite MITM è esclusa dall'uso predefinito di HTTPS per il caricamento delle liste di blocco standard (per le altre liste si prevede di vietare il caricamento tramite HTTP nella prossima versione). Per bloccare l'attacco lato siti possono essere utilizzate le direttive (Content Security Policy), attraverso le quali è possibile definire esplicitamente gli host dai quali è consentito il caricamento di risorse esterne.
Fonte: opennet.ru
