打开网页浏览器就崩了
慎点
https://ygcaicn.github.io/Brash/
Brash漏洞PoC工具的核心实现原理,是基于对Chromium内核浏览器渲染机制的精准利用,通过构造高频度、高并发的DOM操作请求,突破浏览器内核的资源处理阈值,最终触发潜在漏洞并导致浏览器异常崩溃。
从目标机制锁定来看,该工具精准瞄准了Chromium内核中document.title属性的更新处理流程。在Chromium架构中,document.title作为DOM核心属性,其修改操作并非简单的本地变量更新,而是需要经过“JavaScript线程请求→浏览器主线程调度→渲染进程标题重绘→UI界面同步更新”的多环节链路。这一链路涉及跨线程通信、渲染资源分配、界面重绘触发等多个核心模块,且浏览器内核为保证用户体验,对该操作的并发处理能力设置了隐性阈值——正常场景下,用户手动或低频率代码修改标题时,内核可通过资源调度机制平稳处理;但当更新频率突破阈值时,链路中某一环节的资源分配或线程同步逻辑便可能出现异常,这为漏洞触发提供了基础条件。
从漏洞触发逻辑来看,高频标题更新引发的核心问题的是Chromium内核的“资源竞争”与“线程阻塞”。一方面,每秒数千万次的标题修改请求会导致跨线程通信通道被占满,主线程与渲染进程之间的消息队列出现大量积压,进而引发资源分配紊乱——例如,渲染进程为处理标题重绘不断申请内存资源,却因线程调度优先级冲突无法及时释放,最终导致内存泄漏或溢出;另一方面,高频UI重绘请求会迫使渲染线程持续处于“重绘-同步”循环中,挤占其他核心功能(如页面交互、脚本执行)的资源,甚至触发内核的“死锁防护机制”失效,最终导致浏览器进程异常(表现为崩溃、无响应或后台残留僵尸进程)。值得注意的是,该漏洞仅影响Chromium内核浏览器,正是因为Firefox、Safari等非Chromium内核浏览器的标题更新处理链路、并发控制逻辑与Chromium存在本质差异,其内核对高频标题更新的容错机制更完善,因此不会崩溃。