聚焦源代码安全,网罗国内外最新资讯!
编译:代码卫士
Chrome 用户使用同源策略阻止网站访问浏览器内相互之间的数据,但有时漏洞如 Spectre 等可导致这些策略遭绕过。
站点隔离是保护浏览器免遭此类绕过威胁的额外防线。站点隔离在2018年引入 Chrome 并在上个月出现在 Firefox 浏览器版本中,它表明不同网站的文本被独立渲染而非在共享进程中渲染。这就使恶意网站更难以窃取其它网站的信息。即使跨域名网站通过嵌入式框架被嵌入另外一个网站中,但站点隔离仍然会在单独进程进行中加载来保护信息安全。
然而,谷歌Project Zero 团队的研究员 Sergei Glazunov 利用 Chrome service worker 特性中的一个漏洞绕过了站点隔离特性。Service worker 是在后台独立于网页运行的 JavaScript 代码,支持无需用户交互如推送通知和后台同步的多种函数。
Glazunov 在报告中指出,exploit 始于恶意网站使用“导航预加载”,即在启动service worker 时平行加载 URL 的特性。在这种情况下,恶意代码使用禁用了同源读取拦截 (CORB) 的URL加载器。CORB 是一种算法,用于阻止web浏览器在抵达网页前加载同源资源。
一旦禁用了 CORB 的URL 加载器就绪,它会被传递给 service worker,加载所请求的内容并自我破坏。该URL加载器本应当阻止重定向,但由于 service worker 能够访问 URL 加载器接口,因此它可修改行为,按照重定向读取完整的响应,即使它源自跨源域名也不例外。
另外,站点隔离特性将不会阻止代码访问边界外的数据。
Glazunov 在 PoC 代码中展示了攻击者如何利用该 bug 请求 Gmail URL 并访问用户cookie 和数据。
该漏洞已在Chrome 96 中修复。
https://portswigger.net/daily-swig/safe-browsing-google-fixes-chrome-site-isolation-bypass-bug
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。
觉得不错,就点个 “在看” 或 "赞” 吧~

