O vulnerabilitate a fost identificată în motorul de browser Gecko (CVE-2026-6770), permițând generarea de identificatori unici pentru urmărirea deschiderii diferitelor site-uri dintr-un singur browser. Problema se manifestă în toate browserele bazate pe Firefox, inclusiv Tor Browser, și funcționează chiar și în modul de navigare privată. Identificatorii sunt valabili în cadrul procesului curent al browserului și sunt resetati după repornirea browserului. Vulnerabilitatea a fost remediată în versiunile Firefox 150/140.10.0 și Tor Browser 15.0.10.
Pentru a genera un identificator, este suficient să creați, prin API-ul IndexedDB, aceeași secvență de baze de date pe site-uri diferite, după care să evaluați ordinea în care aceste baze de date sunt returnate prin apelul metodei indexedDB.databases(). Ordinea enumerării bazelor de date va varia între instanțele diferite ale browserului, dar pentru o singură instanță aceasta va fi repetitivă. Această ordine este păstrată până la repornirea browserului și este reproducibilă indiferent de site-ul accesat.
De exemplu, după crearea bazei de date „a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,r” într-o instanță Firefox, metoda indexedDB.databases() va returna întotdeauna „g,c,p,a,l,f,n,r,d,j,b,o,h,e,m,i,k”, iar într-o altă instanță — „j,b,o,h,e,m,i,k,f,n,r,d,g,c,p,a,l”. Creând 16 baze de date, se pot obține aproximativ 44 de biți de entropie pentru identificare. Generarea identificatorului nu este afectată de curățarea stocărilor locale ale browserului și de actualizarea lanțului de noduri Tor prin butonul „New Identity” din Tor Browser. Metoda poate fi folosită și pentru identificarea utilizatorilor în fereastra de navigare privată.
Vulnerabilitatea este cauzată de particularitățile implementării API-ului IndexedDB, unde ordinea bazelor de date este influențată de aranjamentul structurilor interne, specific fiecărei instanțe a procesului de lucru al browserului. Ordinea elementelor din lista de baze de date, returnată de metoda indexedDB.databases(), depinde nu de numele bazelor de date sau de ordinea în care au fost create, ci de plasarea UUID-urilor interne în tabela hash globală, asociate cu numele fișierelor în care sunt stocate bazele de date pe disc.
Sursa: opennet.ro
