Una vulnerabilità negli elenchi di Adblock Plus consente l'esecuzione di codice dannoso

del browser

Recentemente è stata scoperta una vulnerabilità che potrebbe consentire ai manutentori di bloccare gli elenchi di filtri per le estensioni del browser Adblock Plus, AdBlock e uBlocker per creare filtri che iniettano script remoti nei siti web.

Con una base di utenti che ha superato la soglia dei 10 milioni, se script dannosi venissero iniettati negli ad blocker, ciò avrebbe un impatto considerevole perché potrebbero svolgere attività indesiderate, come il furto di cookie, informazioni di connessione, provocando reindirizzamenti di pagine o altri comportamenti indesiderati.

Per quelli che non hanno familiarità con gli ad blocker, fondamentalmente usano elenchi di URL relativi ad annunci e comportamenti dannosi.

Di solito, Sono gestiti da un piccolo team di persone o anche da una singola persona.

Quando questi elenchi vengono caricati con un'estensione di blocco degli annunci come Adblock Plus, questa estensione impedirà al browser di connettersi agli URL inseriti nell'elenco e quindi questo impedisce la connessione ad annunci o script dannosi.

L'opzione $ rewrite filter sta causando il problema

Quando AdblockerPlus 3.2 lanciato nel 2018, it aggiunta una nuova opzione per l'elenco dei filtri, chiamata $ rewrite.

Questa opzione permesso a un responsabile della lista sostituire una richiesta web che corrisponde a un'espressione regolare in particolare con un altro URL.

Hubert Figuiere, chi ha introdotto questa funzione, ha spiegato che:

“A partire da Adblock Plus 3.2 per Chrome, Firefox e Opera (e le versioni di sviluppo 3.1.0.2053), una nuova opzione di filtro $ rewrite consente di riscrivere l'URL di una risorsa invece di bloccarla.

Quando Adblock Plus assegna un URL di richiesta a un filtro con l'opzione $ rewrite, trasforma l'URL in base alla regola fornita e dice al browser di caricare la risorsa allo stesso tempo.

La sintassi della regola $ riscrittura specifica una stringa che funge da modello per il nuovo URL.

$ n è sostituito dalla sotto-corrispondenza n-esima dell'espressione regolare del filtro. Questa è la stessa sintassi della funzione JavaScript String.prototype.replace ().

Se l'URL risultante è relativo (cioè non hai un host), l'origine della query originale verrà utilizzata come base. In entrambi i casi, se il nuovo URL non condivide l'origine, la riscrittura sarà considerata non riuscita e la richiesta iniziale passerà.

Inoltre, i filtri $ rewrite vengono ignorati per le query SCRIPT, SUBDOCUMENT, OBJECT e OBJECT_SUBREQUEST per motivi di sicurezza. Questa opzione è comoda per modificare o eliminare i parametri della query ».

L'unico svantaggio è che la stringa di sostituzione deve essere un URL relativo, il che significa che non contiene un nome host e, una volta riscritto, deve appartenere allo stesso dominio di origine della richiesta.

L'esecuzione del codice viene eseguita anche su Google Maps

Un ricercatore di sicurezza ha spiegato che:

In determinate condizioni, è possibile che un manutentore di filtri dannosi non autorizzato crei una regola che inietta uno script remoto in un particolare sito.

Per poterlo fare, basta cercare un sito che carichi gli script da qualsiasi dominio che contenga un reindirizzamento aperto e usa XMLHttpRequest o Fetch per scaricare gli script da eseguire.

Non è stato troppo difficile da trovare perché farlo da solo usa semplicemente Google Maps come prova di concetto.

Il ricercatore lo ha spiegato i seguenti criteri devono essere soddisfatti in modo che un servizio web possa essere sfruttato con questo metodo:

  • La pagina deve caricare una stringa JS utilizzando XMLHttpRequest o Fetch ed eseguire il codice di ritorno.
  • La pagina non deve limitare le origini da cui può essere recuperata dalle linee guida dei criteri di sicurezza dei contenuti o convalidare l'URL della richiesta finale prima di eseguire il codice scaricato.
  • L'origine del codice recuperato deve avere un reindirizzamento lato server aperto o un contenuto utente arbitrario dall'host.

L'utilizzo di XMLHttpRequest o Fetch per scaricare gli script e aprire il reindirizzamento sono le due chiavi del problema.

Per mitigare questo problema, si consiglia ai siti Web di utilizzare l'intestazione della politica di sicurezza del contenuto e l'opzione connect-src per specificare una whitelist di siti da cui è possibile caricare gli script.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.