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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
element-ics-javascript — Element Web v1.12.29 - 高 - リモート - XSS - Univention ICS navigation.json リンクが javascript: メニュー href になる | Kitploit
ツール/GitHubGitHub/abraxas/element-ics-javascript
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテスト
GitHubabraxas/element-ics-javascript

element-ics-javascript

Element Web v1.12.29 - 高 - リモート - XSS - Univention ICS navigation.json リンクが javascript: メニュー href になる

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Abraxas Labs - element-ics-javascript

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  element-ics-javascript

element-ics-javascript

Element Web v1.12.29 - Element / New Vector

クラス: XSS 到達範囲: リモート

Univention バナーモジュールは ICS の navigation.json を取得し、各エントリの link をスキームチェックなしで z.string() として受け入れ、Menu.tsx がその文字列をスタイル付きの <a href> に配置します。静的メニュー設定では link_url に z.url() を使用しています。ICS のパスではそうなっていません。同じピンでの URL プレビューはすでに javascript: を拒否しています(previewFromBundle、GHSA-9r5h)。これはデフォルトの app.element.io ではありません。modules/banner と menu.type が univention であること、さらにデプロイが信頼する ICS が必要です。

その navigation.json を変更できる者は誰でも javascript: や data: を仕込めます。サインイン済みのユーザーがバナーメニューを開き、その項目をクリックすると、Element オリジン上でスクリプトが実行されます。

IDCVE 未割当
CWECWE-79 / CWE-20
CVSSMedium: 6.8 CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:N
製品Element Web
影響を受けるバージョンv1.12.29 タグ v1.12.29 (2d90d6b7b601ecb9ccdf81239a43b4396b4b0c9e)。条件: Univention バナー + ICS。
認証ICS 運用者 / ICS の侵害。被害者はメニュー項目をクリックするサインイン済みユーザー。
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1 のみ

攻撃者ができること

Element デプロイが信頼する ICS を侵害または運用します。navigation.json に javascript:(または data:)URL を配置します。サインイン済みユーザーがバナーメニューを開き、その項目をクリックするのを待ちます。これは Matrix アカウントの乗っ取りです。アクセストークン、暗号ストア、セッション。OS の RCE ではありません。デスクトップでは依然として nodeIntegration が無効で、サンドボックスがあります。

権限メソッド / シンク偵察 / 完全性 / 可用性ラボ実証または推測
Element オリジン上でバナーメニューの <a href="javascript:…"> をレンダリングICS navigation.json entries[].link -> navigationToConfig link_url -> Menu.tsx LinkButton href={link.link_url}メニュー DOM の完全性ラボ実証済み。モック ICS リンク javascript:ELEMENT-ICS-JAVASCRIPT-WITNESS がその href になった。https ポータルリンクは依然としてレンダリングされた
クリック後に Element オリジンとしてスクリプトを実行被害者がメニュー項目をクリック(UI:R)完全性href シンクからの推測。ラボはブラウザクリックを実行したり、ライブの Matrix トークンを窃取したりしていない
Matrix アクセストークン / 暗号ストアを読み取る(アカウント乗っ取り)オリジン内スクリプト vs localStorage / IndexedDB セッション偵察 / 完全性Element オリジン XSS からの推測。ラボの証拠は href 文字列
Element タブをフィッシングページへトップナビゲートSilentLogin.tsx のサンドボックスなし iframe src={new URL("silent", icsUrl)}完全性iframe に sandbox がないことはラボ実証済み。トップナビゲーションは未検証
data: による同じ仕込みz.string() は任意のスキームを受け入れる完全性推測。ラボは javascript: のみを仕込んだ

このピンでクローズ済み: デフォルトの app.element.io(Univention バナーなし)。OS RCE / LPE(デスクトップの nodeIntegration: false、サンドボックス、contextIsolation)。Timeline HTML XSS。URL プレビューの javascript:(GHSA-9r5h previewFromBundle は http:/https: を要求)。HTML エクスポート XSS(GHSA-wqmv)。ウィジェットメディアトークン(GHSA-3jm3)。静的バナーの link_url: z.url() は運用者設定であり ICS ではない。z.url() もまた http/https の許可リストではない。

同じピンの残件: fragment guest wipe、vector: Windows ドライブレター。

発見の経緯

2026年9月22日の GitHub リリース後、Element Web v1.12.29 をピン留めしました。URL プレビューはすでに苦労して http:/https: を学習していました。Univention ICS の link は依然として z.string() です。静的メニュー設定は z.url() を使用しています。取得パスはそのチェックを一切通りません。

すでに記録済みの誤った道: デフォルトの app.element.io を被害者とみなすこと(Univention は条件付き)。z.url() をスキーム許可リストとみなすこと(URL コンストラクタは javascript: を受け入れる)。クリック XSS を OS RCE に誇張すること。リバースシェル。茶番。

ラボ

ピンの機能のガジェットとモック ICS navigation.json。ライブの Element Web コンテナではありません。how=gadget。URL プレビューの http/https 許可リスト(previewFromBundle)を適用すると、javascript href は削除され、https ポータルリンクは維持されました。

python3 element-ics-javascript-Abraxas-Labs.py

または

cd lab
./run.sh

対象は http://127.0.0.1:19620 のみ。Compose プロジェクト element-ics-javascript。スタックは実行後に破棄されます。

SUCCESS element-ics-javascript how=gadget href-scheme=javascript menu-a-javascript=yes allowlist-rejects=yes silent-no-sandbox=yes ELEMENT-ICS-JAVASCRIPT-WITNESS

修正

previewFromBundle と同じ方法で、ICS の link に http: と https: を許可リスト化します。href= の前に javascript:、data:、その他のスキームを拒否します。サイレント iframe をサンドボックス化します(sandbox="" または少なくとも allow-top-navigation なし)。z.url() をスキーム許可リストとして扱わないでください。

参考資料

  • github.com/element-hq/element-web タグ v1.12.29
  • navigation.ts
  • Menu.tsx
  • SilentLogin.tsx
  • 近傍の修正済み(この href ではない): GHSA-9r5h previewFromBundle
  • 同じピン: element-fragment-guest · element-vector-drive-letter
  • CWE-79

ライセンス

GNU Affero GPL v3.0。LICENSE を参照。ループバックラボのみ。無保証。

ツールをダウンロード