谷歌Chrome的开发人员Jake Archibald在多款网页浏览器中发现了一个严重的漏洞,它驻留在浏览器处理视频和音频文件的跨域请求的方式中,如果被利用,甚至可能允许远程攻击者甚至读取你的Gmail或Facebook私人消息的内容。
出于安全原因,现代网页浏览器不允许网站向不同的域发出跨源请求,除非任何域明确允许。这意味着,如果你访问浏览器上的一个网站,它只能从网站加载的相同来源请求数据,以防止它以你的名义发出任何未经授权的请求,企图从其他网站窃取你的数据。
然而,当浏览器在获取其他来源的媒体文件时,不会以相同的方式做出响应,允许你访问的网站无限制地加载来自不同域的音频或视频文件。
此外,浏览器还支持范围标头和部分内容响应,允许网站提供大型媒体文件的部分内容,这在播放大型媒体或下载具有暂停和恢复功能的文件时非常有用。
换句话说,媒体元素有能力将多个响应组合在一起,并将其视为单个资源。
然而,Archibald发现,Mozilla FireFox和Microsoft Edge允许媒体元素将来自多个源的可见和不透明数据或不透明数据混合在一起,从而为攻击者留下了一个复杂的攻击向量。
在本周三(6月20日)发布的博客文章中,Archibald详细介绍了这个漏洞,他将其命名为“Wavethrough”,解释了攻击者如何利用这一特性来绕过浏览器所实施的防止跨源请求的保护。
“当浏览器实现对媒体元素的范围请求时,错误就开始出现了,这些范围请求确实很有用,所有浏览器都是通过相互复制行为来实现的,但没有人将其集成到标准中。”Archibald解释说。
根据Archibald的说法,这个漏洞可以被恶意网站利用,在其网页上使用嵌入式媒体文件,如果播放,它只会从自己的服务器上提供部分内容,并要求浏览器从不同的来源获取文件的其余部分,迫使浏览器发出一个跨域请求。
第二个请求实际上是一个跨源请求,应该加以限制,因为媒体文件允许混合可见和不透明数据,允许一个网站从另一个网站窃取内容。
Archibald说:“我创建了一个可以完成上述工作的网站,我使用了一个PCM WAV标头,因为标头之后的所有内容都是有效的数据,而Facebook返回的任何内容都将被视为未压缩的音频。”
Archibald还发布了一段视频和一个POC,演示恶意网站如何从Gmail和Facebook等网站获取你的私人内容。当你的浏览器为你加载恶意网站时,它们的响应将是相同的。
由于Chrome和Safari已经有了相应的策略,一旦它们看到底层内容在请求之间发生变化后出现任何重定向,它们的用户就会受到保护。
“这就是标准为什么重要的原因,我相信Chrome早在很久以前就有过类似的安全问题,但不应该仅在Chrome中进行修复,而是应该将修补程序写入标准,并且应该为其他浏览器编写测试以检查。”Archibald说。
在Archibald负责任地向安全团队报告之后,发现易受此问题影响的FireFox和Edge浏览器也在其最新版本中修复了漏洞。
因此,强烈建议FireFox和Edge浏览器用户确保自己正在运行的浏览器是最新版本。