Vulnerabilidade na API IndexedDB permite identificar usuários do Firefox e do Tor Browser

Foi identificada uma vulnerabilidade no motor de browser Gecko (CVE-2026-6770), que permite a formação de identificadores únicos para rastreamento de visitas a diferentes sites a partir de um único navegador. O problema se manifesta em todos os navegadores baseados no Firefox, incluindo o Tor Browser, e funciona mesmo no modo de navegação privada. Os identificadores são válidos dentro do processo atual do navegador e são redefinidos após a reinicialização do navegador. A vulnerabilidade foi corrigida nas versões Firefox 150/140.10.0 e Tor Browser 15.0.10.

Para criar um identificador, basta gerar a mesma sequência de banco de dados em diferentes sites através da API IndexedDB e, em seguida, avaliar a ordem de listagem desses bancos de dados como resultado da chamada ao método indexedDB.databases(). A ordem de enumeração dos bancos de dados será diferente para diferentes instâncias do navegador, mas repetirá a mesma ordem para uma única instância. Essa ordem se mantém até a reinicialização do navegador e é reproduzível independentemente do site que está sendo visitado.

Por exemplo, após criar o banco de dados "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,r" em uma instância do Firefox, o método indexedDB.databases() sempre retornará "g,c,p,a,l,f,n,r,d,j,b,o,h,e,m,i,k", enquanto em outra instância retornará "j,b,o,h,e,m,i,k,f,n,r,d,g,c,p,a,l". Com a criação de 16 bancos de dados, pode-se obter cerca de 44 bits de entropia para identificação. A geração do identificador não é afetada pela limpeza dos armazenamentos locais dos navegadores e pela atualização da cadeia de nós Tor com o botão "Nova Identidade" no Tor Browser. O método também pode ser usado para identificar usuários em uma janela de navegação privada.

A vulnerabilidade é causada pela maneira como a API IndexedDB é implementada, na qual a ordem de listagem dos bancos de dados é influenciada pela disposição das estruturas internas, que é específica para cada instância do processo de trabalho do navegador. A ordem dos elementos na lista de bancos de dados retornada pelo método indexedDB.databases() depende não dos nomes dos bancos de dados ou da ordem de criação, mas da localização das UUIDs internas na tabela hash global, associadas aos nomes dos arquivos em que os bancos de dados são armazenados no disco.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster