🔍 Contexte

Publié le 22 avril 2026 par Fingerprint sur leur blog technique, cet article décrit la découverte et la divulgation responsable d’une vulnérabilité de confidentialité affectant tous les navigateurs basés sur Firefox, incluant Tor Browser.

🐛 Nature de la vulnérabilité

La vulnérabilité repose sur le comportement de l’API indexedDB.databases() dans les navigateurs basés sur Gecko. En mode navigation privée, Firefox remplace les noms de bases de données par des UUID générés, stockés dans une table de hachage globale (StorageDatabaseNameHashtable) partagée entre toutes les origines. L’ordre de retour des entrées par cette API est déterminé par l’itération sur la structure interne du hash set (nsTHashSet), sans tri préalable.

Cet ordre est :

  • Déterministe pour la durée de vie du processus Firefox
  • Partagé entre toutes les origines (non cloisonné par origine)
  • Stable même après fermeture de toutes les fenêtres privées

🎯 Impact

  • Cross-origine : des sites non liés peuvent dériver le même identifiant et corréler l’activité d’un utilisateur entre domaines sans cookies ni stockage partagé
  • Navigation privée Firefox : l’identifiant persiste après fermeture de toutes les fenêtres privées tant que le processus Firefox tourne
  • Tor Browser : l’identifiant survit à la fonctionnalité “New Identity”, censée fournir une isolation complète (nouveaux circuits Tor, suppression cookies/historique)
  • Capacité d’entropie : avec 16 noms de bases de données contrôlés, l’espace théorique atteint ~44 bits (16! permutations), suffisant pour identifier de manière unique des instances de navigateur

🔧 Cause technique

Le fichier incriminé est dom/indexedDB/ActorsParent.cpp. Les UUID sont générés dans GetDatabaseFilenameBase() et stockés dans gStorageDatabaseNameHashtable. L’ordre de retour de GetDatabasesOp::DoDatabaseWork() reflète l’ordre d’itération du hash set interne, non trié.

✅ Correctif

Mozilla a publié le correctif dans Firefox 150 et ESR 140.10.0, tracké sous Mozilla Bug 2024220. La solution consiste à retourner les résultats dans un ordre canonique (tri lexicographique) avant de les exposer à l’API, éliminant ainsi l’entropie liée à la structure interne.

📋 Type d’article

Il s’agit d’une publication de recherche combinant analyse technique approfondie et divulgation responsable, visant à documenter la vulnérabilité, son mécanisme, son impact sur la vie privée et le correctif appliqué.

🧠 TTPs et IOCs détectés

TTP

  • T1592.004 — Gather Victim Host Information: Client Configurations (Reconnaissance)
  • T1185 — Browser Session Hijacking (Collection)

IOC

  • Chemins : dom/indexedDB/ActorsParent.cpp

🔴 Indice de vérification factuelle : 29/100 (basse)

  • ⬜ fingerprint.com — source non référencée (0pts)
  • ✅ 10437 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 1 IOC(s) (6pts)
  • ⬜ pas d’IOC vérifié (0pts)
  • ✅ 2 TTP(s) MITRE (8pts)
  • ⬜ date RSS ou approximée (0pts)
  • ⬜ aucun acteur de menace nommé (0pts)
  • ⬜ pas de CVE à vérifier (0pts)

🔗 Source originale : https://fingerprint.com/blog/firefox-tor-indexeddb-privacy-vulnerability/