lylzjnqe/CVE-2025-11460-Chrome-RCE
GitHub: lylzjnqe/CVE-2025-11460-Chrome-RCE
该项目提供 CVE-2025-11460 的利用 PoC,用于在未受沙箱的浏览器进程中复现 IndexedDB 的使用后释放漏洞。
Stars: 1 | Forks: 0
# Chromium IndexedDB Use-After-Free RCE 漏洞(CVE-2025-11460)
## 概述
该漏洞允许**远程攻击者**(通过恶意网页)利用 IndexedDB 数据库连接管理在强制关闭数据库时的“使用后释放”错误,在未受沙箱限制的浏览器进程中实现**任意代码执行**。
## 根本原因
当调用 `Database::ForceCloseAndRunTasks()` 时:
1. 设置 `force_closing_` 标志为 `true`
2. 清除所有现有连接
3. 通过 `BucketContext::QueueRunTasks()` 排队一个任务,以便最终销毁 `Database` 对象
然而,在销毁排队与实际执行 `RunTasks()` 之间的狭窄时间窗口内,**新的连接请求**仍会被接受:
- `Database::CreateConnection()` 未检查 `force_closing_`
- 在强制关闭期间,`ConnectionClosed()` 回调被跳过 → 已释放的 `Connection` 对象仍保留在 `connections_` 中
- 随后,`Database::RunTasks()` 遍历过期的 `connections_` 列表 → **堆使用后释放**
这种情况发生在**未受沙箱限制的浏览器进程**中(通过来自被攻破渲染器的 Mojo IPC),使得利用特别危险。
## 复现步骤
1. `python disable_aslr.py ` 生成 chrome.noaslr.exe —— 仅适用于 Windows 的生成步骤
2. `python copy_mojo_js_bindings.py ` 并将生成的文件复制到 PoC 文件夹。
3. 在 PoC 文件夹中运行 `python -m http.server 1337`,并确保已解压相关文件。
4. 运行 `chrome.noaslr.exe --incognito "http://localhost:1337" --enable-blink-features=MojoJS`
5. PoC 初始化完成后(两者均就绪),可复制该 URL 并在后续加载 PoC 时使用,以加快启动速度。
6. 开始 -> 喷射 -> 在网页界面中利用。
7. 如果一切正常,应会弹出命令行窗口和计算器。(即使启用了 CFG)
## 漏洞利用示例(PoC)

标签:ASLR 绕过, Chromium, CVE-2025-11460, exploit, IndexedDB, Mojo IPC, POC, RCE, Use-After-Free, 代码执行, 内存安全, 堆溢出, 威胁模拟, 开放策略代理, 强制关闭, 数据库连接管理, 无沙箱, 浏览器漏洞, 浏览器进程, 漏洞分析, 编程工具, 路径探测, 远程代码执行, 逆向工具