Nel blocco degli annunci Adblock Plus una vulnerabilità di eseguire codice JavaScript nel contesto dei siti quando si utilizzano filtri non verificati creati da malintenzionati (ad esempio, con la connessione di set di regole di terze parti o attraverso la sostituzione delle regole durante un attacco MITM).
Gli autori delle liste con set di filtri possono eseguire il proprio codice nel contesto dei siti aperti dall'utente aggiungendo regole con l'operatore «« che permette di sostituire parte dell'URL. L'operatore rewrite non consente di sostituire l'host nell'URL, ma permette di manipolare liberamente gli argomenti della query. Come maschera per la sostituzione è consentito l'uso solo di testo, mentre è vietata l'inserzione dei tag script, object e subdocumento. .
Tuttavia, è possibile ottenere l'esecuzione del codice tramite vie traverse.
Alcuni siti, inclusi Google Maps, Gmail e Google Immagini, utilizzano una tecnica di caricamento dinamico di blocchi di codice JavaScript eseguibile, trasmessi in forma di testo semplice. Se il server consente il reindirizzamento delle richieste, è possibile forzare il passaggio a un altro host modificando i parametri dell'URL (ad esempio, nel contesto di Google il reindirizzamento può avvenire tramite l'API ««). Oltre agli host che consentono il reindirizzamento, l'attacco può essere effettuato anche contro i servizi che permettono la pubblicazione di contenuti da parte degli utenti (hosting di codice, piattaforme di pubblicazione di articoli, ecc.).
Il metodo di attacco proposto riguarda solo le pagine che caricano dinamicamente righe con codice JavaScript (ad esempio, tramite XMLHttpRequest o Fetch) e poi lo eseguono. Un altro importante vincolo è la necessità di utilizzare un reindirizzamento o di ospitare dati arbitrari sul server di origine 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 il reindirizzamento tramite «google.com/search».
La correzione è in fase di preparazione. Il problema riguarda anche i blocchi. e . Il blocco uBlock Origin non è interessato al problema, poiché non supporta l'operatore «rewrite». In passato, l'autore di uBlock Origin
di aggiungere il supporto per il rewrite, citando potenziali problemi di sicurezza e insufficienza delle restrizioni a livello di host (al posto del rewrite è stata proposta l'opzione querystrip per pulire i parametri della richiesta anziché sostituirli).
Gli sviluppatori di Adblock Plus considerano improbabile il verificarsi di attacchi reali, poiché tutte le modifiche negli elenchi di regole standard vengono revisionate, e il collegamento a elenchi di terze parti è praticato dagli utenti raramente. La sostituzione delle regole tramite MITM è esclusa dall'uso predefinito di HTTPS per il caricamento degli elenchi di blocco standard (per gli altri elenchi si prevede di vietare il caricamento tramite HTTP nella prossima versione). Per bloccare attacchi sul lato dei siti possono essere utilizzate le direttive (Content Security Policy), attraverso le quali è possibile definire esplicitamente gli host da cui è consentito il caricamento di risorse esterne.
Fonte: opennet.ru
