主要观点:作者发现 Chromium 浏览器中的 CVE-2024-6778 和 CVE-2024-5836 漏洞,可通过浏览器扩展实现沙箱逃逸,最终获谷歌 20,000 美元报酬。
关键信息:
- WebUIs 与 Chrome 沙箱:Chromium 运行的未信任代码被沙箱隔离,WebUI 用 HTML、CSS 和 Javascript 编写,可访问私有 API 绕过沙箱,但接收端会验证。
- 企业策略:介绍 Chromium 企业策略系统,包括用户策略和设备策略,用户策略可本地设置,通过
chrome://policy
查看,其中存在未记录的设置测试策略页面的功能。 - 策略测试页面漏洞:发现通过
chrome://policy/test
页面可设置测试策略,虽应先启用PolicyTestPageEnabled
策略,但实际未验证导致漏洞,且该漏洞在特定浏览器渠道下可利用。 - 利用浏览器切换器实现沙箱逃逸:企业策略中的 Legacy Browser Support 模块可通过设置特定策略让 Chromium 启动任意 shell 命令,结合
chrome://policy
实现沙箱逃逸。 - 突破 Devtools API:通过创建恶意 Chrome 扩展,利用
chrome.devtools.inspectedWindow
的reload()
函数和eval()
函数的漏洞,在chrome://policy
页面获取代码执行权限,实现攻击链。 - 谷歌的响应:谷歌确认漏洞并实施修复,包括添加
loaderId
参数、检查 URL 和测试策略启用情况等,最终两个漏洞分别被分配为 CVE-2024-5836 和 CVE-2024-6778,作者获 20,000 美元报酬。
重要细节: - 漏洞利用过程中涉及多种 Chrome 相关技术和页面,如
chrome://downloads
、chrome://settings
、chrome://history
等。 - 不同操作系统下执行 shell 命令的方式不同,如 Windows 为
C:\\Windows\\System32\\cmd.exe
,Linux 为/bin/bash
,Mac OS 为/bin/bash
。 - 谷歌修复漏洞的方式包括在
Page.reload
命令中添加loaderId
参数、在inspectedWindow.reload()
函数中检查 URL 以及在 WebUI 处理程序中检查测试策略启用情况等。 - 整个漏洞发现和报告过程历时数月,包括发现漏洞、发送报告、谷歌处理、修复和确定报酬等阶段。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。