Уязвимость в API IndexedDB, позволяющая идентифицировать пользователей Firefox и Tor Browser

В браузерном движке Gecko выявлена уязвимость (CVE-2026-6770), позволяющая формировать уникальные идентификаторы для отслеживания открытия из одного браузера разных сайтов. Проблема проявляется во всех браузерах на основе Firefox, включая Tor Browser, и работает даже в режиме приватного просмотра. Идентификаторы действуют в рамках текущего процесса браузера и сбрасываются после перезапуска браузера. Уязвимость устранена в выпусках Firefox 150/140.10.0 и Tor Browser 15.0.10.

Для формирования идентификатора достаточно на разных сайтах создать через API IndexedDВ одну и ту же последовательность БД, после чего оценить порядок следования этих БД в результате вызова метода indexedDB.databases(). Для разных экземпляров браузера порядок перечисления БД будет отличаться, но для одного — повторяться. Подобный порядок сохраняется до перезапуска браузера и воспроизводится независимо от открываемого сайта.

Например, после создания БД «a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,r» в одном экземпляре Firefox метод indexedDB.databases() всегда будет возвращать «g,c,p,a,l,f,n,r,d,j,b,o,h,e,m,i,k», а в другом экземпляре — «j,b,o,h,e,m,i,k,f,n,r,d,g,c,p,a,l». При создании 16 БД можно получить около 44 бит энтропии для идентификации. На генерацию идентификатора не влияет очистка локальных браузерных хранилищ и обновление цепочки Tor-узлов кнопкой «New Identity» в Tor Browser. Метод также может использоваться для идентификации пользователей в окне приватного просмотра.

Уязвимость вызвана особенностью реализации API IndexedDВ, на порядок следования БД в которой влияет раскладка внутренних структур, специфичная для каждого экземпляра рабочего процесса браузера. Порядок элементов в списке БД, возвращаемом методом indexedDB.databases(), зависит не от имён БД или порядка создания БД, а от размещения в глобальной хэш-таблице внутренних UUID-хешей, ассоциированных с именами файлов, в которых хранятся БД на диске.

Źródło: opennet.ru

Dodaj komentarz