预览窗格关闭了页面与 preload 之间的隔离墙。will-attach-webview 强制 contextIsolation = false,并保留页面提供的 preload 和 webpreferences 字符串。无效分区仍会被阻止。Node 集成保持关闭。沙箱保持开启。这是在渲染器已被攻陷之后的第二重打击。
类别: 隔离残留 可达性: 本地(渲染器被攻陷后)
T3 Code 61c3794c - Ping
| ID | 暂无 CVE |
| 类别 | 隔离残留 |
| 可达性 | 本地(主渲染器被攻陷或预览页面被攻陷) |
| CWE | CWE-693 |
| CVSS | 低:3.6 CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:N |
| 产品 | T3 Code |
| 受影响版本 | 61c3794c32b0eeebfac09add43e403618c65d2d7 |
| 认证 | 已位于桌面渲染器内部 |
| 许可证 | GNU Affero GPL v3.0 |
| 实验环境 | Electron 模拟层;preload 路径仅作为字符串判据,从不执行 |
需要主渲染器被攻陷(或预览页面能够影响 <webview> 标签)。仅凭此处理程序无法让页面获得 Node。
| 权限 | 方法 / 汇聚点 | 侦察 / 完整性 / 可用性 | 实验验证或推断 |
|---|---|---|---|
在预览 webview 上强制 contextIsolation=false | DesktopWindow will-attach-webview | 完整性(隔离关闭) | 实验验证。handler-invoked=1,contextIsolation=False |
保留植入的 preload 路径 | 同一处理程序,传入的 webPreferences.preload | 完整性 | 实验验证。preload-kept=1,路径中包含见证值 t3f03v2c8 |
保留植入的 webpreferences | 同一处理程序 | 完整性 | 实验验证。webpreferences-kept=1(nodeIntegration=yes 仍存在;nodeIntegration 布尔值仍被强制为 false) |
| 阴性对照:无效分区 | 分区不在 persist:t3code-preview- 范围内 | 不适用 | 实验验证。preventDefault |
在此残留中保持关闭
| 维度 | 方法 / 汇聚点 | 为何关闭 |
|---|---|---|
| 完整性 | 此 webview 上的 nodeIntegration | 处理程序设为 false |
| 完整性 | 未沙箱化的 webview | 处理程序设置 sandbox=true |
| 完整性 | 附加非预览分区 | event.preventDefault() |
| 完整性 | 未经认证的远程 RCE | 需要先攻陷渲染器 |
PREVIEW_WEBVIEW_PREFERENCES 为 contextIsolation=false,sandbox=true,nodeIntegration=false。Electron 文档中 will-attach-webview 的要求是从页面提供的属性中删除 preload 和 webpreferences。
该处理程序内联在 window.webContents.on("will-attach-webview") 上。我在现有的 DesktopWindow 模拟层上触发了该监听器,使用有效的预览分区和植入的 preload 路径。
走过的弯路:把隔离关闭当作今天页面中已有 Node(沙箱和 nodeIntegration 仍然有效)。
python3 t3code-preview-webview-isolation-Abraxas-Labs.py
或:
cd lab
./run.sh
IOC handler-invoked=1
IOC contextIsolation=False
IOC sandbox=True
IOC nodeIntegration=False
IOC preload-kept=1
IOC webpreferences-kept=1
IOC preventDefault-invalid-partition=1
SUCCESS T3-F03-WEBVIEW t3f03v2c8
设置 contextIsolation = true(或删除该行;true 是默认值)。在返回前执行 delete webPreferences.preload; delete webPreferences.webpreferences;。
61c3794c32b0eeebfac09add43e403618c65d2d7DesktopWindow.ts will-attach-webviewGNU Affero GPL v3.0。参见 LICENSE。仅限回环实验环境。不提供任何担保。
Abraxas Labs [email protected]
请将 CVE 归功于 Abraxas Labs。