プレビューペインは、ページとプリロードの間の壁を無効にします。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 モックレイヤー。プリロードパスは文字列オラクルであり、実行されることはない |
侵害されたメインレンダラー(または <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 モックレイヤー上で、有効なプレビューパーティションと仕込まれたプリロードパスを使ってそのリスナーを発火させました。
誤った方向性: 分離オフを今日のページ内 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 にお願いします。