Scoperto l'exploit del filtro Adblock Plus per eseguire codice arbitrario scoperto

La maggior parte dei content blocker utilizza e carica elenchi di filtri che includono le istruzioni per bloccare o modificare determinati contenuti sui siti visitati nel browser Web per impostazione predefinita; ciò viene fatto per garantire che le configurazioni predefinite blocchino immediatamente una buona porzione di contenuto indesiderato.

La maggior parte delle estensioni supporta elenchi personalizzati e singoli filtri. Gli utenti possono caricare elenchi personalizzati nella maggior parte delle estensioni e aggiungere i propri filtri anche all'elenco.

Aggiornamento : Eyeo GMHB ha annunciato oggi che rimuoverà la funzione $ rewrite in futuro. Aspettatevi presto una nuova versione che rimuova se dall'estensione. Fine

Il ricercatore di sicurezza Armin Sebastian ha scoperto un exploit in alcuni adblocker come Adblock Plus che potrebbe essere utilizzato per eseguire codice dannoso sui siti visitati nel browser.

L'exploit utilizza un'opzione di filtro chiamata $ rewrite che Adblock Plus supporta per iniettare codice arbitrario nelle pagine Web. Il filtro $ rewrite viene utilizzato per sostituire il codice sui siti riscrivendolo. L'opzione filtro limita l'operazione; è progettato per caricare il contenuto solo dalla fonte principale e non da siti o server di terze parti e alcune richieste, ad esempio script o oggetti, non sono consentite.

Sebastian ha scoperto una vulnerabilità in $ rewrite che gli aggressori possono sfruttare per caricare contenuti da posizioni remote. Le condizioni che devono essere soddisfatte sono:

  1. È necessario caricare una stringa JavaScript utilizzando XMLHttpRequest o Fetch e il codice di ritorno deve essere eseguito.
  2. Le origini non possono essere limitate nella pagina, ad esempio utilizzando le direttive sulle norme sulla sicurezza dei contenuti e l'URL della richiesta finale non può essere convalidato prima dell'esecuzione.
  3. L'origine del codice deve avere un reindirizzamento aperto sul lato server o deve contenere contenuti utente arbitrari.

Le proprietà che soddisfano tutti e tre i requisiti includono Google Maps, Gmail o Google Immagini tra gli altri. Una prova di concetto è stata pubblicata sul sito Web dell'autore e puoi provarla su Google Maps per verificare che funzioni.

Ho provato l'exploit in Chrome e Firefox e non sono riuscito a farlo funzionare. Tuttavia Lawrence Abrams su Bleeping Computer è riuscito a farlo funzionare.

Parole di chiusura

L'attacco ha un altro requisito, in quanto si basa su filtri. È necessario aggiungere un filtro manipolato all'elenco dei filtri utilizzati dal blocco contenuto. Le due opzioni più comuni includono gli utenti che aggiungono manualmente i filtri ai loro blocchi di contenuto o che un filtro manipolato si trova in un elenco di filtri che viene caricato.

La seconda opzione sembra più probabile, specialmente nei casi in cui gli utenti caricano altri elenchi nelle estensioni. Non è la prima volta che le liste vengono manipolate ma non succede molto spesso.

L'estensione uBlock Origin non è interessata dal problema in quanto non supporta $ rewrite.