了解有关本尼·查尔尼(Benny Czarny)所著《颠覆性的网络安全》一书的更多信息

了解更多
我们利用人工智能进行网站翻译,虽然我们力求准确,但不一定总是 100%精确。感谢您的理解。

全面分析 CVE-2024-6778:Chrome 浏览器 DevTools 中的竞态条件漏洞

作者: OPSWAT

全球有数十亿台设备安装了网络浏览器,这使它们成为网络犯罪分子的主要目标。由于主要网络浏览器拥有庞大的用户群,一个漏洞就可能造成深远的影响。保持浏览器更新对于抵御不断变化的威胁至关重要。

为了说明网络浏览器漏洞的严重性,我们的研究人员对 CVE-2024-6778 进行了广泛分析,这是基于 Chromium 的浏览器中的一个漏洞,尤其影响 Chrome DevTools。本博客详细分析了该漏洞的技术方面、潜在影响和缓解策略。

全面分析 CVE-2024-6778:Chrome 浏览器 DevTools 中的竞态条件漏洞

CVE-2024-6778 的背景

CVE-2024-6778 是在 Chrome DevTools 中发现的一个竞赛条件漏洞。攻击者可通过恶意浏览器扩展向有权限的浏览器页面注入恶意 HTML 或 JavaScript。根据 NVD(国家漏洞数据库),该漏洞被评为高度严重漏洞,CVSS 得分为 8.8。

该漏洞的严重性评级很高,因为它有可能导致远程代码执行,从而危及系统、破坏机密性并降低可用性。

全面分析 CVE-2024-6778:Chrome 浏览器 DevTools 中的竞态条件漏洞

Chromium 安全性概述

要深入了解 CVE-2024-6778 的影响,就必须了解 Chromium 安全模型的关键方面。Chromium 是 Google Chrome、Microsoft Edge、Opera 和 Brave 等浏览器的开源基础。它采用多进程模式,每个标签页(也称为渲染器)和各种浏览器组件都在独立进程中运行,通过限制潜在漏洞的范围来提高稳定性和安全性。

Chromium 安全性的一个基本要素是其沙箱机制,它限制呈现器进程直接访问系统资源。相反,所有交互都通过 IPC(进程间通信)通道进行管理,以确保只执行授权操作。

并非 Chromium 中的所有组件都受完全沙盒限制。chrome://settings、chrome://downloads 等 WebUI 页面在呈现器进程中呈现,但在运行时受到部分沙盒限制。该进程允许它们访问通常无法通过网络访问的浏览器 API。

全面分析 CVE-2024-6778:Chrome 浏览器 DevTools 中的竞态条件漏洞

例如,chrome://policy页面在企业环境中发挥着重要作用,因为它使管理员和用户能够配置和执行浏览器安全策略。在 Windows 系统中,这些策略也是通过组策略来管理的。

由于chrome://policy可以直接与操作系统交互,因此成为攻击者的重要目标。由于 CVE-2024-6778 漏洞利用了 Chrome DevTools 中的竞赛条件,攻击者可以向这些页面注入恶意代码,从而带来严重的安全风险。

CVE-2024-6778 的技术分析

发现

在 Chrome 浏览器企业版 117 中引入的测试功能中发现了此漏洞。该功能可通过chrome://policy/test页面进行策略测试。由于有关该功能的官方文档有限,我们的研究人员对 Chromium 源代码进行了彻底检查,并辅以 CVE 作者的见解,以全面了解该功能的实现并识别相关的安全漏洞。

政策管理组件

OPSWAT 研究员的源代码分析表明,在 chrome://policy/test,使用 政策信息 接口,并在 WebUI 和浏览器进程之间通过 策略测试浏览器代理 班级该班 政策信息 结构定义如下

全面分析 CVE-2024-6778:Chrome 浏览器 DevTools 中的竞态条件漏洞

通过进一步检查负责处理这些政策的类别,确定了一种名为 应用测试策略.该方法利用了私人API、 设置本地测试策略动态应用策略列表。

全面分析 CVE-2024-6778:Chrome 浏览器 DevTools 中的竞态条件漏洞

为了深入了解如何通过该API处理策略请求,研究人员分析了 处理设置本地测试策略 方法中的 保单处理程序 类:

全面分析 CVE-2024-6778:Chrome 浏览器 DevTools 中的竞态条件漏洞

"(《世界人权宣言》) 处理设置本地测试策略 方法从提供的参数中检索策略数据,并获取指向 本地测试策略提供程序 实例。然后,在指示当前用户配置文件使用该提供程序之前,它会验证该提供程序是否存在。

这种核查被认为是不够的,因为它只能确保 本地测试提供程序 为非空,才会应用这些策略。创建和初始化 本地测试提供程序 由 创建允许 方法:

全面分析 CVE-2024-6778:Chrome 浏览器 DevTools 中的竞态条件漏洞

在 创建允许 方法的返回值完全取决于 是否启用政策测试 功能。该功能可确定 本地测试策略提供程序 实例是根据用户偏好和浏览器的发布通道组合创建的:

全面分析 CVE-2024-6778:Chrome 浏览器 DevTools 中的竞态条件漏洞

因为 前置服务 每次 IsPolicyTestingEnabled() 被调用时,第一个条件将被绕过,使启用决定完全依赖于浏览器的释放通道。

在非品牌 Chromium 版本中,发布通道默认为 通道::未知.根据函数的逻辑、 通道::未知 与 Channel::DEFAULT, which enables the policy testing feature by default. The code flow analysis revealed that the private API 设置本地测试策略 可通过 WebUI 调用,在没有任何访问限制的情况下应用策略。

剥削

通过识别和利用这一专用API,攻击者可以通过 WebUI 任意应用策略,从而操纵以下设置 已启用浏览器切换器, BrowserSwitcherUrlList, 替代浏览器路径和 替代浏览器参数 来执行命令。例如,通过设置 替代浏览器路径 到 powershell 和 替代浏览器参数 至 ["计算"]当访问特定 URL 时,可以执行任意 shell 命令。

通过专用API应用任意恶意用户策略

为了演示如何使用私人 设置本地测试策略 在前面的分析中确定的API ,下面的 JavaScript 代码是一个用于设置 允许恐龙复活节彩蛋 政策,并通过 网络用户界面 通过调用 设置本地测试策略:

全面分析 CVE-2024-6778:Chrome 浏览器 DevTools 中的竞态条件漏洞

该策略可成功应用于禁用 允许恐龙复活节彩蛋 设置。

全面分析 CVE-2024-6778:Chrome 浏览器 DevTools 中的竞态条件漏洞

为扩大影响,攻击者可将目标锁定为 浏览器切换器 政策:

全面分析 CVE-2024-6778:Chrome 浏览器 DevTools 中的竞态条件漏洞

如果 URL 符合某些条件,该策略可使浏览器调用另一个浏览器路径。可以通过配置该路径指向系统可执行文件来执行操作系统命令,从而利用该策略。下面的 JavaScript 代码演示了这种方法:

全面分析 CVE-2024-6778:Chrome 浏览器 DevTools 中的竞态条件漏洞

该脚本执行以下任务

  • 启用 浏览器切换器 feature for example.com
  • 设置 powerShell 的替代浏览器路径
  • 执行 煅烧 只要访问指定的 URL。
全面分析 CVE-2024-6778:Chrome 浏览器 DevTools 中的竞态条件漏洞

模拟恶意 Chrome 浏览器扩展

识别允许应用策略的私有API 为攻击者引入了一个重要的攻击载体。要有效利用这一漏洞,攻击者需要开发一个恶意 Chrome 扩展,使用 Chrome DevToolsAPI 来执行恶意 JavaScript 代码。

To demonstrate the potential real-world impact, our fellows simulated a scenario in which a malicious Chrome extension is installed on a vulnerable browser and used to execute the attack.The chrome.devtools APIs in Chrome Extensions enable developers to extend and interact with Chrome's DevTools interface.

不过,通过扩展执行 DevToolsAPI 遇到一些必须绕过的难题。首先,DevToolsAPI 只有在 DevTools 打开并主动检查网站时才能运行。其次,DevToolsAPI 不允许在 Web 用户界面(WebUI)上执行代码。这一限制有助于在开发和检查过程中维护 WebUI 的安全性和完整性。

通过重载API显示 Javascript 执行迹象

Further analysis revealed that the chrome.devtools.inspectedWindow.reloadfunction lacks the verification to confirm whether an extension is permitted to run scripts on the inspected page. Its only level of defense is the devtools extension server, which blocks access once the inspected page’s URL changes.

全面分析 CVE-2024-6778:Chrome 浏览器 DevTools 中的竞态条件漏洞

About:blank 页面继承了打开它们的页面的权限和来源。这意味着,从 WebUI 信号重定向时在 about:blank 上执行代码的能力是一个潜在漏洞。

通过重载API在 WebUI 上执行代码

中的竞赛条件 chrome.devtools.inspectedWindow.reload() 该漏洞允许在 Chrome 浏览器的 WebUI 页面(如 chrome://policy)上执行代码,而这些页面通常是受保护的。该漏洞利用了重载API 在页面转换期间注入 JavaScript 的功能。具体操作如下

  • 目标 WebUI:在标签页中打开 WebUI 页面(例如,chrome://policy)并附加 DevTools。
  • 注入脚本:API 带有 injectedScript 参数,以便在重载期间运行任意 JavaScript。
  • 利用竞赛条件:当重新加载在 WebUI 的安全机制完全初始化之前触发时,就会出现竞赛条件,从而允许注入的脚本执行。

在从 about:blank 页面导航到 chrome://policy 的情况下:

全面分析 CVE-2024-6778:Chrome 浏览器 DevTools 中的竞态条件漏洞

由于验证的只是 URL 而不是页面的来源,因此在导航后会有一段短暂的时间,来源反映新页面,而 URL 保持不变。

如果 chrome.devtools.inspectedWindow.reload 在此窗口中调用,可能会无意中在目标页面上执行 JavaScript。

提高比赛条件下的可靠性

由于对时间的依赖,利用竞赛条件本质上是不可靠的。此外,快速重载或畸形脚本也会导致页面崩溃。提高可靠性的一种新方法是故意诱导页面崩溃,因为通过 DevTools 发出的命令通常会在崩溃时取消,但 Page.reload 映射到 chrome.devtools.inspectedWindow.reload() 被列入白名单,并在页面重新加载后执行。

全面分析 CVE-2024-6778:Chrome 浏览器 DevTools 中的竞态条件漏洞

下面是一个通过推送后续命令使页面崩溃的工作流程模型:

全面分析 CVE-2024-6778:Chrome 浏览器 DevTools 中的竞态条件漏洞

内容脚本中的调试器语句可能引发崩溃

连续两次使用调试器会扰乱内容脚本的导航过程。它可能通过将 导航提交状态 进入意料之外的状态。出现这一问题的原因是 RenderFrameImpl::SynchronouslyCommitAboutBlankForBug778318 被执行、 更改 _navigation_commit_state 到一个意想不到的值。

全面分析 CVE-2024-6778:Chrome 浏览器 DevTools 中的竞态条件漏洞
全面分析 CVE-2024-6778:Chrome 浏览器 DevTools 中的竞态条件漏洞

第一次调用会暂停执行,让 导航提交状态 在不一致的状态下,第二个暂停在 CHECK_EQ 检查,导致状态验证失败并引发崩溃。

补救措施

忽视定期更新浏览器版本会使您的设备面临严重的安全威胁,尤其是那些与 CVE(常见漏洞和暴露)相关的威胁。为了帮助降低这种风险,MetaDefender Endpoint™通过检测浏览器版本和检查漏洞(包括 CVE-2024-6778 等已知 CVE)提供强大的保护。

MetaDefender Endpoint 可确保您的应用程序是最新的,并标记任何过时或受感染的版本。它还会列出存在已知漏洞的已安装应用程序(按 CVE 严重程度分类),并推荐修复方法,以有效减轻潜在威胁。要观看有关MetaDefender Endpoint 如何帮助您降低这些风险的现场演示,请立即与我们的专家取得联系。

标签

通过OPSWAT 了解最新信息!

立即注册,获取最新的公司动态、故事、活动信息等。