漏洞概述
2026年2月13日,Google 发布了 Chrome 安全更新,修复了一个被标记为 CVE-2026-2441 的高危漏洞。这是 2026年首个 Chromium 零日漏洞,Google 确认该漏洞已在野利用("an exploit for CVE-2026-2441 exists in the wild")。
⚠️ 关键信息:该漏洞被描述为"User after free in CSS",影响所有基于 Chromium 的浏览器(Chrome、Edge、Vivaldi、Brave 等)。
影响版本
| 浏览器 | 安全版本 | 检查方法 |
|---|---|---|
| Google Chrome | ≥ 145.0.7632.75 | Settings > About Chrome |
| Microsoft Edge | ≥ 145.0.3800.58 | Help > About Microsoft Edge |
| Vivaldi | ≥ 7.8 | Help > About |
| Brave | ≥ v1.87.188 | Help > About Brave |
漏洞技术分析
漏洞类型:Use After Free (UAF)
该漏洞位于 Chrome 的 Blink CSS 引擎中,具体在 @font-feature-values 规则的解析过程中。当浏览器解析以下 CSS 时:
@font-feature-values VulnTestFont {
@styleset {
entry_a: 1;
entry_b: 2;
entry_c: 3;
/* ... */
}
}
浏览器会创建一个 CSSFontFeaturesValueMap 对象来存储这些值。问题出在 JavaScript 表示形式的 HashMap 数据结构的内存管理上——恶意脚本可以访问已被释放的内存。
💡 技术细节:这不是一个"纯 CSS"漏洞。CSS 本身不是恶意部分,而是 Chrome 的 CSS 渲染引擎在处理特定 CSS 规则时的内存管理 bug。攻击仍然需要 JavaScript 来触发和利用。
攻击链
- 内存释放后重用: 恶意脚本触发 UAF 条件
- 类型混淆: 攻击者将释放的内存重新分配给另一个对象
- 代码执行: 利用内存损坏执行任意代码
修复方案
Google 的修复是将 HashMap 的 deep copy 而非指针引用传递给 CSSFontFeaturesValueMap,从而消除释放后引用的可能性。
浏览器安全对比
🛡️ Firefox 优势:Mozilla 在 2017 年用 Rust 重写了 CSS 渲染引擎(Quantum CSS / Stylo),Rust 的内存安全特性可以自动防止此类 Use After Free 漏洞。
🔧 Chromium 的应对:Google 自 2023 年开始支持在 Chromium 中使用 Rust,动机之一就是"更安全(减少 C++ 中的内存安全 bug)"。但这项工作仍在进行中,CSS 引擎目前仍主要使用 C++。
常见误解澄清
❌ 误解:这是一个"CSS 漏洞",意味着恶意 CSS 可以直接执行代码。
✅ 事实:
- 这不是纯 CSS 漏洞——仍需要 JavaScript 来触发和利用
- CSS 验证无法阻止此漏洞
- 问题的根源是 Chrome Blink 引擎的 C++ 内存管理
- 攻击者使用 CSS 作为攻击向量,但漏洞在浏览器引擎中