据浏览器指纹识别服务FingerprintJS周五分享的一篇博文称,WebKit对一个名为IndexedDB的JavaScript API的实现存在一个错误,可以揭示你最近的浏览历史,甚至是你的身份。
简而言之,该漏洞允许任何使用IndexedDB的网站访问其他网站在用户浏览会话期间生成的IndexedDB数据库的名称。这个错误可能允许一个网站跟踪用户在不同标签或窗口中访问的其他网站,因为数据库名称通常是独特的,而且是每个网站都有的。正确和正常的行为应该是,网站只能访问他们自己的 IndexedDB 数据库。
在某些情况下,网站在 IndexedDB 数据库名称中使用独特的用户特定标识符。例如,YouTube创建的数据库在名称中包括用户经过认证的谷歌用户ID,根据FingerprintJS,这个标识符可用于谷歌API,以获取有关用户的个人信息,如个人资料图片。这些个人信息可以帮助恶意行为者确定用户的身份。
该漏洞影响了使用苹果开源浏览器引擎WebKit的较新版本的浏览器,包括Mac版Safari 15和所有版本的iOS 15和iPadOS 15的Safari。这个错误还影响到iOS15和iPadOS15上的Chrome等第三方浏览器,因为苹果要求所有浏览器在iPhone和iPad上使用WebKit。FingerprintJS有一个关于该bug的实时演示,表明Mac版Safari 14等旧版浏览器不受影响。
FingerprintJS指出,网站访问其他网站生成的IndexedDB数据库名称不需要用户操作。
"一个在后台运行并不断查询IndexedDB API的可用数据库的标签或窗口可以实时了解用户访问的其他网站,"该博客文章说。"另外,网站可以在一个iframe或弹出式窗口中打开任何网站,以便对该特定网站触发基于IndexedDB的泄漏。"
在受影响的Safari版本中,私人浏览模式并不能防止该漏洞。
用户将需要等待苹果公司通过软件更新来解决这个错误--我们已经联系了苹果公司,看看是否计划进行修复。同时,Safari 15用户可以在Mac上临时切换到不同的浏览器,但在iPhone或iPad上不可能这样做,因为所有浏览器在这些设备上都受到WebKit漏洞的影响。