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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
element-fragment-guest — Element Web v1.12.29 - 高 - リモート - セッション - フラグメントのゲスト認証情報がwhoamiの前に実際のセッションを消去する | Kitploit
ツール/GitHubGitHub/abraxas/element-fragment-guest
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティ認証ラボと実践
GitHubabraxas/element-fragment-guest

element-fragment-guest

Element Web v1.12.29 - 高 - リモート - セッション - フラグメントのゲスト認証情報がwhoamiの前に実際のセッションを消去する

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Abraxas Labs - element-fragment-guest

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

element-fragment-guest

Element Web v1.12.29 - Element / New Vector

クラス: セッション破壊 到達範囲: リモート

Lifecycle.loadSession は、restoreSessionFromStorage よりも URL ハッシュ内の guest_user_id と guest_access_token を優先します。ゲストはデフォルトで有効です(enableGuest={!config.disable_guests})。app.element.io の config.json は disable_guests を設定していません。onTokenLoginCompleted は SSO と OIDC のパラメータのみを削除します。ゲストキーは決して削除しません。url_utils.ts には、これらのフラグメントパラメータは未使用に見えると既にコメントされています。それでもこれらが優先されます。

サインイン済みのユーザーに、ゲストフラグメントパラメータを含むハッシュ URL を開かせることができる者は誰でも、そのユーザーをログアウトさせ、ローカルの暗号を消去します。不正なトークンで十分です。whoami は決して呼び出されません。

IDCVE 未割当
CWECWE-384 / CWE-352 / CWE-613
CVSSHigh: 7.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H
製品Element Web
影響範囲v1.12.29 タグ v1.12.29 (2d90d6b7b601ecb9ccdf81239a43b4396b4b0c9e)。ゲスト有効(デフォルト)。
認証未認証の攻撃者。被害者は URL を開く(または再読み込みする)必要があります。
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1 のみ

攻撃者ができること

サインイン済みのユーザーに、ゲストフラグメントパラメータを含むハッシュ URL を開かせます。クライアントはユーザーをログアウトさせ、ローカルの暗号を消去し、攻撃者のゲストに誘導する可能性があります。これはログアウトと暗号消去です。本物のトークンを盗むものではありません。OS の RCE でもありません。

権限メソッド / シンク偵察 / 完全性 / 可用性ラボ実証または推測
ハッシュからゲスト資格情報を解析url_utils.ts guest: { keys: ["guest_user_id", "guest_access_token"], location: "fragment" }セッション選択の完全性ラボ実証済み。#/home?guest_user_id=...&guest_access_token=... は guest_params になりました。クエリ文字列のみではなりませんでした。
保存された非ゲストセッションよりゲストを優先Lifecycle.loadSession のゲスト優先分岐、ログ Using guest access credentials完全性ラボ実証済み。シードされた @victim:example.org は復元されませんでした。
localStorage、IndexedDB アカウント、sessionStorage、暗号を消去doSetLoggedIn(..., clearStorageEnabled=true) の後に clearStorage()ローカルセッションの完全性 / 可用性ラボ実証済み。crypto_empty=yes、以前のトークンは消滅。
トークン検証をスキップゲストパスは /_matrix/client/v3/account/whoami を決して呼び出さない完全性ラボ実証済み。whoami_called=no。不正なトークン not-a-real-token でも消去されました。
攻撃者のゲスト資格情報を永続化消去後の persistCredentials完全性ラボ実証済み。after_user=@x:example.org、after_token=not-a-real-token、mx_is_guest=true。
デフォルト HS 上の実在するゲストに固定ゲストトークンが有効な場合、同じ永続化完全性推測。ラボでは不正なトークンを使用したため、ライブ HS ログインはなし。
再読み込み時にもこれを継続ゲストキーはハッシュに残る。onTokenLoginCompleted はそれらを削除しない完全性ピン app.tsx からの推測。ラボでは URL を一度開いた。

この残存物で除外されたもの: 本物のアクセストークンの窃取(削除されるのであり、外部送信ではない)。OS RCE / LPE(Desktop nodeIntegration: false、サンドボックス)。ライブ Element SPA(how=gadget)。クエリ文字列 ?guest_user_id=(フラグメントのみ)。disable_guests: true は非ゲストセッションを維持します。非ゲストセッションが存在する場合にゲストを無視するパッチ済み loadSession もそれを維持します。

同じピンの残存物: vector: Windows ドライブレター、Univention ICS javascript: href。

発見の経緯

2026年9月22日の GitHub リリース後、Element Web v1.12.29 をピン留めしました。SSO loginToken はクエリのみで、使用後に削除されます。ゲストキーは依然としてフラグメント内にあり、復元より優先されます。url_utils.ts のコメントが手がかりです。彼らはこれらのキーが仕様化されていることを既に疑っていました。

既に記録された誤った道: クエリ文字列 ?guest_user_id= をベクターとして扱うこと(キーはハッシュ内に存在)。これをトークン窃取と呼ぶこと(本物のトークンは削除され、送信されない)。app.element.io の設定に disable_guests を期待すること(未設定)。リバースシェル。茶番。

ラボ

ピンの関数のガジェット。ライブ Element Web コンテナではありません。how=gadget。

python3 element-fragment-guest-Abraxas-Labs.py

または

cd lab
./run.sh

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

SUCCESS element-fragment-guest how=gadget guest-wipe=yes prior-kept=no garbage-token=yes disable-guests-keeps=yes ELEMENT-FRAGMENT-GUEST-WITNESS

修正

非ゲストセッションが既に存在する場合、ゲストフラグメントパラメータを無視します。clearStorage の前に /_matrix/client/v3/account/whoami でゲストトークンを検証します。SSO トークンが削除されるのと同じ方法で guest_user_id と guest_access_token を削除します。ホストされた app.element.io では disable_guests: true をデフォルトにします。

参考文献

  • github.com/element-hq/element-web タグ v1.12.29
  • Lifecycle.ts(loadSession ゲスト優先)
  • url_utils.ts
  • app.tsx(enableGuest={!config.disable_guests})
  • 同じピン: element-vector-drive-letter · element-ics-javascript
  • CWE-384

ライセンス

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

ツールをダウンロード