安全公司Fingerprint披露,所有基于Firefox的浏览器均存在一个IndexedDB隐私漏洞。该漏洞源于IndexedDB数据库列表查询功能返回顺序的不稳定性,网站可通过此机制推导出一个稳定且可复现的浏览器程序标识符,在不依赖Cookie或其他共享存储机制的情况下,识别是否为同一浏览器实例。该漏洞不仅影响普通Firefox浏览器,也破坏了Tor Browser原本强调的隐私隔离设计。
研究人员指出,用于列出IndexedDB数据库信息的API在返回数据库列表时,意外暴露了浏览器内部存储结构的排列差异,形成可被观测的指纹信号。网站只需创建一组固定名称的IndexedDB数据库,再调用该API观察返回顺序,即可在浏览器进程存活期间获得一致的排列结果。由于该结果属于进程级别而非单一来源级别,不同网站可能各自观察到相同的标识特征。
在Firefox隐私浏览模式下,即使用户关闭所有隐私窗口,只要Firefox进程未完全退出,该标识信号仍可能持续存在,导致网站在看似全新的隐私会话中再次识别同一用户。对Tor Browser的影响更为严重,因为其“新建标识”功能本意是切断前后活动的关联性,但此漏洞意味着在进程未重启前,网站仍可能将不同阶段的活动串联起来。
由于Firefox在隐私浏览模式下会将网站提供的数据库名称映射为UUID,并存储在跨来源共享的全局哈希表中,而在整理数据库列表时未进行排序,而是直接按照内部哈希结构的迭代顺序返回结果。研究人员指出,正是这一看似无害的内部行为,使返回顺序成为可被利用的稳定指纹。若网站控制16个数据库名称,理论上可构建约44位的标识空间,足以构成高识别度的追踪信号。
Mozilla已针对此漏洞发布修复补丁,Firefox 150及ESR 140.10.0版本已包含修复。修复方案是让API返回结果按固定顺序排序,避免内部存储结构的排列差异继续暴露为隐私风险。由于问题根源在于Gecko引擎的IndexedDB实现,其他采用相同核心的下游产品若未额外处理,也可能受到相同影响。