Chromium漏洞允许SameSite Cookie在Android设备上被绕过
Ben Dickson
2023年2月27日 11:50 UTC
漏洞概述
最近在Chromium项目中修补的一个漏洞可能允许恶意行为者绕过Android浏览器上保护敏感Cookie的安全功能。
SameSite设置使开发人员能够限制对Cookie的访问。例如,通过设置SameSite=strict,可以防止在用户通过链接或来自其他网站的重定向请求导航到网站时,Cookie出现在HTTP响应中。
通过Intent请求绕过SameSite
然而,安全研究员Axel Chong发现,如果他使用Intent方案导航到目标网站,就可以绕过SameSite保护。Intent是外部协议处理程序,允许Android应用程序打开其他应用程序,例如从浏览器跳转到地图应用程序或从短信跳转到浏览器。
Chong告诉The Daily Swig:“我在阅读关于Intent的一个有趣漏洞时发现了这个bug。由于Intent URL可以指向同一个应用程序(本例中为Chrome)并创建新的浏览上下文,我当时想知道Intent URL可能绕过哪种安全措施。”
Intent URL应被视为外部来源,并受到SameSite限制。但Chong用Python创建的概念证明显示,当Web服务器使用Intent URL发起重定向时,具有SameSite=strict设置的Cookie会被携带过去。
相同的方案还绕过了Sec-Fetch-Site头,该头确定请求的来源,并使网站能够控制来自外部来源对其资源的访问。
Chong说:“这两者通常用于防止CSRF(跨站请求伪造),因此影响将是绕过这些保护。”
普通重定向也受影响
进一步调查显示,SameSite Cookie也会通过没有Intent协议的简单重定向请求被携带。
虽然这在Chrome的早期版本中已修复,但由于导致了破坏性更改,后来被禁用。
实验性Cookie功能标志(chrome://flags/#enable-experimental-cookie-features)将恢复安全行为,并防止SameSite Cookie在普通重定向请求中被发送。
此标志不影响Intent重定向的不安全行为。Chong还表示,该标志不影响Sec-Fetch-Site行为,需要单独修复。
修复难度大
修复这个bug并非易事,因为开发人员必须考虑如何确定可信应用程序,包括浏览器。
最终决定不信任Intent,因为"(a)设备上的其他应用程序可能不可信,且(b)网站可以使用Intent URL/重定向反射回Chrome,并可能利用它来绕过SameSite限制。"
这里的教训是,考虑到应用程序和浏览器之间复杂的通信方式,开发人员应该为其应用程序使用多层安全防护。
Chong建议:“这类浏览器安全机制(即SameSite Cookie、Fetch元数据)仅旨在提供深度防御。你应该使用它们,但不要将它们作为唯一的防御形式。”