ElianGonzi00/CVE-2025-2783

GitHub: ElianGonzi00/CVE-2025-2783

该仓库实现了 Chromium CVE-2025-2783(Ipcz 通信层沙箱逃逸)的全链漏洞利用代码,含完整的漏洞触发与演示环境。

Stars: 0 | Forks: 0

# Chromium CVE-2025-2783:沙箱逃逸与全链 RCE 漏洞利用 本仓库包含 **CVE-2025-2783** 的全链漏洞利用实现。该漏洞存在于 Chromium 的 **Ipcz** 通信层中,允许攻击者从受限的渲染器进程中实现沙箱逃逸和任意代码执行。此漏洞利用支持至 **134.0.6998.177** 版本。 https://github.com/user-attachments/assets/a3e2bf34-739c-4db7-9101-0f4d48987ad0 ## 1. 项目结构 * **`src/`**:核心漏洞利用实现。它包括 Ipcz 劫持逻辑、V8 hooks 以及针对 CVE-2025-2783 的线程劫持执行流程。 * **`demo/`**:全链演示环境。它通过 HTML 文件触发 V8 类型混淆漏洞,并加载由 `src/` 编译的二进制 payload,完成从渲染器进程到 Shellcode 执行的整个链条。 ## 2. 漏洞背景 (CVE-2025-2783) * **组件**:`third_party/ipcz`(Chromium 的 Ipcz 传输协议实现) * **根本原因**:Ipcz 在处理 `RelayMessage` 时,缺乏对跨进程句柄的来源和权限的严格校验。 * **影响**:被攻破的渲染器进程可以诱导浏览器进程(Broker)中继高权限线程句柄,从而有效地绕过沙箱限制。 ## 3. 漏洞利用链 1. **信号拦截**:通过 hook `V8Console::Debug` 拦截 `demo/` 环境中来自 JavaScript 的信号,安全地从 `ArrayBuffer` 中提取第二阶段的 Shellcode。 2. **触发漏洞**:Hook `OnAcceptRelayedMessage` 并构造伪造的中继请求(Message ID: `0x69`),以通过 CVE-2025-2783 获取高权限句柄。 3. **线程劫持**: - 挂起目标高权限线程。 - 使用 `SetThreadContext` 强制修改寄存器状态。 - 在目标上下文中依次调用 `VirtualAlloc`、`ReadProcessMemory` 和 `CreateThread` 以执行 Shellcode。 ## 4. 构建与演示 ### 核心库构建 (`src/`) 由于代码深度依赖于 Chromium 内部的 `ipcz` 和 `mojo` 库,强烈建议将 `src/` 目录集成到 Chromium 源码树中,并使用 **GN** 和 **Ninja** 进行构建,以确保所有内部依赖项正确链接。 ### 全链演示 (`demo/`) 1. **兼容性**:目前仅在 **Chrome v128** 上进行过测试;由于漏洞利用的特性,它仅适用于 **Windows** 系统。 2. **准备工作**:确保 `src/` 中的二进制产物已就绪(`demo/` 目录中已提供预编译的 `payload.bin` 和 `shellcode.bin`)。 3. **执行**:在 `demo/` 目录中运行 `python -m http.server`,然后在浏览器中导航至 `http://127.0.0.1:8000/exp.html`。 4. **结果**:演示脚本将自动加载二进制 payload,并在系统上执行预定义的 Shellcode。 ## 5. 参考资料 * [Chromium Issue 405143032](https://issues.chromium.org/issues/405143032) * [Chromium Issue 381696874](https://issues.chromium.org/issues/381696874) * [Minhook](https://github.com/tsudakageyu/minhook) ## 6. 免责声明 本仓库仅供学术和安全研究之用。作者对因使用此代码而造成的任何损失或法律责任概不负责。请在授权的环境中进行测试。
标签:Chromium, 客户端加密, 沙箱逃逸, 逆向工具