Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
element-vector-drive-letter — Element Desktop v1.12.29 - 高 - ローカル - ファイル - ベクター: プロトコルが asar ジェイル外の Windows ファイルを読み取る | Kitploit
ツール/GitHubGitHub/abraxas/element-vector-drive-letter
脆弱性分析エクスプロイトウェブアプリケーション悪用セキュリティ仮想化ペネトレーションテストラボと実践
GitHubabraxas/element-vector-drive-letter

element-vector-drive-letter

Element Desktop v1.12.29 - 高 - ローカル - ファイル - ベクター: プロトコルが asar ジェイル外の Windows ファイルを読み取る

リポジトリを見る
129日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Abraxas Labs - element-vector-drive-letter

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  element-vector-drive-letter

解説記事: https://abraxaslabs.tech/research/element-vector-drive-letter

element-vector-drive-letter

Element Desktop v1.12.29 - Element Creations Ltd

分類: ファイル読み取り 到達範囲: ローカル

apps/desktop/src/electron-main.ts は vector: を特権ファイルプロトコルとして登録している。ジェイルは path.normalize(path.join(...pathname.split("/").slice(2))) の後の relTarget.startsWith("..") のみである。Windows では C:、Windows、win.ini の join はすでに C:\Windows\win.ini になる。絶対パスは .. で始まらないため、このチェックを通過してしまう。Electron 自身のカスタムプロトコルに関する注意書きも path.isAbsolute を拒否している。POSIX の path.join は C: を絶対パスとして扱わないため、Linux と macOS はこの残存バグの対象ではない。will-navigate は vector: を通過させる。

レンダラー XSS、DevTools、または別のローカルプロセスが fetch("vector://vector/webapp/C:/Windows/win.ini") を実行し、Element プロセスが開けるファイルを読み取ることができる。

IDCVE 未割当
CWECWE-22 / CWE-73
CVSSHigh: 8.3 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
製品element-web Desktop (apps/desktop)
影響範囲v1.12.29 (2d90d6b7b601ecb9ccdf81239a43b4396b4b0c9e)。Windows のみ。
認証ローカルレンダラー (DevTools / XSS)
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1 のみ

攻撃者ができること

レンダラー XSS、DevTools、または vector: に到達できる別のローカルプロセス。ネイティブの Windows Element Desktop は実行していない。このガジェットは pin の URL パーサーをコピーし、Node の path.win32 を使用している。

権限メソッド / シンク偵察 / 完全性 / 可用性ラボ実証または推測
Element プロセスが開けるファイルを読み取るfetch("vector://vector/webapp/C:/Windows/win.ini")。ジェイルは relTarget.startsWith("..") のみ。ドライブレターの join は絶対パスになるため、チェックを通過する。path.win32.resolve(asar, relTarget) は C:\Windows\win.ini になる偵察URL パーサーガジェット上でラボ実証済み。ボディは ELEMENT-VECTOR-DRIVE-LETTER-WITNESS。ネイティブ Desktop は未実行
同じ ACL 上の electron-config、プロファイル、他ユーザーのファイルの同様の読み取り同じ vector://vector/webapp/C:/... の fetch偵察推測。ラボでは win.ini を設置したのみで、実際の機密情報ではない
メインフレームがディスク上に既にある攻撃者 HTML を読み込んだ場合の Matrix ATOwill-navigate が vector: を通過させる。vector://vector 上の悪意ある HTML が preload / window.electron (トークン、Seshat、clearStorage) を取得する完全性webcontents-handler.ts と preload からの推測。ラボでは BrowserWindow をナビゲートしていない
asar ツリーの ../ トラバーサルvector://vector/webapp/../n/aここではクローズ。WHATWG URL がこれを折りたたみ、ハンドラーは FILE_NOT_FOUND (-6) を返す
POSIX / macOS / Linux でのドライブレター fetchpath.posix.join は C:/Windows/win.ini を asar 配下に残すn/aここではクローズ。ガジェットの posix は 404 で、ウィットネスなし
OS RCE / LPEnodeIntegration: false、app.enableSandbox()n/aクローズ。この残存バグではない

同じピン留めの残骸: fragment guest wipe、Univention ICS javascript: href。

発見の経緯

2026年9月22日のGitHubリリース後、element-hq/element-web v1.12.29 をピン留めした。Timeline XSS、HTMLエクスポートXSS (GHSA-wqmv)、ホームページHTML (GHSA-wrcp)、ウィジェットメディアトークン (GHSA-3jm3)、Element Callキー (GHSA-69q3) はこのタグではクローズ済みである。Desktopのカスタムプロトコルは依然として startsWith("..") をチェックするだけだ。

new URL("vector://vector/webapp/C:/Windows/win.ini") は C: をパスセグメントとして保持する。path.win32.join("C:", "Windows", "win.ini") は C:\Windows\win.ini になる。Nodeの path.win32.join(asar, abs) は連結し、path.win32.resolve はasarルートを破棄する。

すでに記録済みの誤った道筋: ../ を残骸とみなすこと (WHATWGが折りたたみ、ハンドラは404を返す)、POSIXの C: を同じバグと呼ぶこと (posix joinはasar配下に留まる)、ファイル読み取りをOS RCEに誇張すること (サンドボックスと nodeIntegration: false は有効のまま)。リバースシェル。茶番だ。

ラボ

URLパーサーのガジェット。Nodeの path.win32 対 path.posix。WindowsのElement Desktopプロセスはなし。仕込んだ /lab/oracle/win.ini が C:\Windows\win.ini の代役を務める。/lab/asar/index.html がasarの檻である。

python3 element-vector-drive-letter-Abraxas-Labs.py

または

cd lab
./run.sh

対象は http://127.0.0.1:19610 のみです。プロジェクト element-vector-drive-letter を構成します。実行後、スタックは破棄されます。

SUCCESS element-vector-drive-letter how=gadget win32-drive-letter=200 posix-drive-letter=404 control-dotdot=404 patched-isabs=404 ELEMENT-VECTOR-DRIVE-LETTER-WITNESS

修正

normalize の後、path.isAbsolute(relTarget) を拒否し、path.resolve(baseDir, relTarget) が path.resolve(baseDir) の配下に留まることを要求する(path.relative を使用し、.. を拒否する)。

参考資料

  • github.com/element-hq/element-web タグ v1.12.29
  • electron-main.ts(registerFileProtocol)
  • webcontents-handler.ts(will-navigate)
  • 近接する修正済み項目(本ジェイルではない): GHSA-wqmv · GHSA-wrcp
  • 同一ピン: element-fragment-guest · element-ics-javascript
  • CWE-22

ライセンス

GNU Affero GPL v3.0。LICENSE を参照。ループバックラボ専用。保証なし。

ツールをダウンロード