Un team di ricercatori della University of Wisconsin-Madison ha scoperto una grave vulnerabilità in migliaia di siti web che permette alle estensioni per Chrome di rubare le password di login dal codice sorgente HTML. Ciò è possibile perché alle estensioni sono concessi privilegi troppo elevati. Per testare il problema di sicurezza è stata caricata un’estensione “proof-of-concept” sul Chrome Web Store.
Le estensioni di Chrome possono rubare le password
La vulnerabilità riguarda i campi di testo in cui l’utente inserisce diversi dati personali, come indirizzo email, password o numero della carta di credito. Le estensioni per Chrome possono interagire con questi elementi di input nel codice HTML del sito. I ricercatori hanno dimostrato che un malintenzionato potrebbe rubare le password dalle pagine di login del 100% dei siti, il 15% dei quali memorizza le password in chiaro nel codice HTML.
La vulnerabilità è dovuta al modello dei permessi. Le estensioni possono accedere al cosiddetto Document Object Model (DOM) Tree che replica la struttura ad albero del sito web. Grazie alle DOM API, il codice JavaScript delle estensioni può accedere agli elementi HTML e manipolare i dati, inclusi quelli inseriti nei campi di testo usati per il login.
Per effettuare i test è stata creata una falsa estensione basata sul modello GPT che offre funzionalità simili a ChatGPT. L’estensione è stata caricata sul Chrome Web Store, aggirando i controlli di Google (è stata successivamente rimossa). Analizzando i primi 10.000 siti mondiali (secondo Tranco), i ricercatori hanno scoperto che circa 1.100 memorizzano le password in chiaro. Circa 7.400 siti consentono l’estrazione dei dati di input.
Tra i siti che conservano le password in chiaro nel codice HTML ci sono google.com e cloudflare.com, mentre amazon.com conserva in chiaro i dettagli della carta di credito. Circa 17.300 estensioni presenti sul Chrome Web Store chiedono i permessi per estrarre informazioni dai siti web, mentre 190 estensioni accedono direttamente al campo della password e conservano il valore in una variabile.