Skip to content
KitploitKITPLOIT
ツールブログ
Log in
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-7867-disk2root — CVE-2026-7867(udisks2)向けの武器化されたローカル権限昇格エクスプロイト。as-userマウントスプーフィングを使用してPolicyKitをバイパスし、rootシェルを取得します。 | Kitploit
ツール/GitHubGitHub/azqzazq1/cve-2026-7867-disk2root
特権昇格脆弱性分析エクスプロイトポストエクスプロイトペネトレーションテスト学習と教育レッドチーミングバイナリエクスプロイトラボと実践
GitHubazqzazq1/cve-2026-7867-disk2root

CVE-2026-7867-disk2root

CVE-2026-7867(udisks2)向けの武器化されたローカル権限昇格エクスプロイト。as-userマウントスプーフィングを使用してPolicyKitをバイパスし、rootシェルを取得します。

184ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見る





Filesystem.Mount → as-user Spoofing → Authorization Bypass → Root-context Mount → LPE


概要

CVE-2026-7867 は、udisks2 におけるローカル権限昇格の脆弱性であり、Filesystem.Mount D-Bus メソッド、as-user オプション、fstab 管理のマウントフロー、および不適切な認可処理に関連します。

このプライベートリポジトリには、管理された実験環境で問題を検証するために使用された技術的な調査ノートと PoC スクリプトが含まれています。

この脆弱性は以下によって発見・報告されました。

Azizcan Daştan azqzazq1
Özlem Ozan oz7oz7

割り当てられた CVE は以下の通りです。

CVE-2026-7867

エグゼクティブサマリー

この脆弱性は、実際の D-Bus 呼び出し元 UID と、as-user マウントオプションによって生成される計算/実効 UID との間の不適切な信頼関係に起因します。

脆弱なフローでは、権限のないローカルユーザーがマウント実行パスに影響を与え、期待される PolicyKit 認可動作なしで、ファイルシステムマウントが特権(ルート)コンテキストで実行される可能性があります。

根本的なバグは、単に「ユーザー制御のマウントオプション」ではありません。

本当の問題は次のとおりです。

udisks2 は、fstab マウント認可および実行中に、元の呼び出し元 ID と計算された as-user ID を一貫して区別できない。


脆弱性の概要

フィールド値
CVECVE-2026-7867
製品udisks2
コンポーネントFilesystem.Mount
攻撃タイプローカル権限昇格
プリミティブas-user スプーフィング
セキュリティ境界D-Bus 呼び出し元 ID → 特権マウント実行
認可レイヤーPolicyKit / fstab マウント認可
ベンダーRed Hat / udisks アップストリーム
ステータスパッチ進行中 / 協調開示
予定修正リリースudisks 2.11.2

影響を受ける領域

脆弱なロジックは、udisks2 内の fstab マウント処理パスに関連しており、特にマウント要求に以下の要素が含まれる場合に関係します。

Filesystem.Mount
as-user
x-udisks-auth
user
users

関連するセキュリティ上重要な領域は以下のとおりです。

D-Bus 呼び出し元 ID
        ↓
as-user オプション処理
        ↓
fstab 認可ロジック
        ↓
PolicyKit 決定フロー
        ↓
ルートコンテキストマウント実行

攻撃フロー

┌─────────────────────────────┐
│ 権限のないローカルユーザー   │
└──────────────┬──────────────┘
               │
               │ Filesystem.Mount
               │ as-user の影響を受ける
               ▼
┌─────────────────────────────┐
│ udisks2 / udisksd           │
│ 特権システムデーモン        │
└──────────────┬──────────────┘
               │
               │ fstab ロジックが
               │ user/auth オプションを評価
               ▼
┌─────────────────────────────┐
│ 認可ギャップ               │
│ mount_other_user が         │
│ スキップされたパスで強制    │
│ されない                    │
└──────────────┬──────────────┘
               │
               │ ルートコンテキストブランチに到達
               ▼
┌─────────────────────────────┐
│ ファイルシステムがマウント  │
│ 期待された認可フローなしで  │
└──────────────┬──────────────┘
               │
               │ 影響はマウントフラグに依存
               ▼
┌─────────────────────────────┐
│ ローカル権限昇格           │
│ 管理されたラボで検証済み   │
└─────────────────────────────┘

根本原因

脆弱な動作は、ID 混乱バグに起因します。

システムには複数の ID 概念があります。

実際の D-Bus 呼び出し元 UID
計算された as-user UID
実効マウント UID
udisksd デーモン特権コンテキスト

脆弱なフローでは、これらの ID を一貫して強制できません。

具体的には:

  • mount_other_user が as-user の使用により true になる可能性がある
  • x-udisks-auth、user、users などの fstab オプションが認可パスに影響を与える
  • 認可ブロックがスキップされる可能性がある
  • mount_other_user チェックがそのブロック外で確実に強制されない
  • マウントパスが、本来 root/管理者実行用のブランチに到達する
  • マウントは特権デーモンコンテキストによって実行される

その結果、ローカル権限境界バイパスが発生します。


x-udisks-auth の問題

x-udisks-auth オプションは、管理 PolicyKit 認可フローを強制することを目的としています。

期待される動作:

マウント要求
    ↓
呼び出し元としてマウント試行
    ↓
権限/認証失敗
    ↓
PolicyKit filesystem-fstab チェック
    ↓
管理者承認
    ↓
認可された特権アクションとしてマウント

脆弱な動作:

as-user の影響を受けるマウント要求
    ↓
計算された ID が実行に影響
    ↓
マウントが早すぎる成功
    ↓
PolicyKit 認可パスが期待通りに到達しない
    ↓
特権マウント状態が達成される

これにより、脆弱なパスにおける x-udisks-auth を中心としたセキュリティモデルが信頼できなくなります。


セキュリティモデル違反

期待されるモデル:

権限のないユーザー
    ↓
D-Bus マウント要求
    ↓
PolicyKit / fstab 認可
    ↓
制限されたマウント動作

破られたモデル:

権限のないユーザー
    ↓
as-user スプーフィング付き D-Bus マウント要求
    ↓
認可ロジックの不一致
    ↓
ルートコンテキストマウント実行

このバグは、影響を受けるサービスが昇格された権限で実行されるため、特に深刻です。


影響

悪用に成功すると、権限のないローカルユーザーが、期待される認可プロンプトなしで、udisks2 経由でファイルシステムをルートコンテキスト実行パスにマウントできる可能性があります。

ファイルシステムとマウントフラグに応じて、影響には以下が含まれる場合があります。

  • ローカル権限昇格
  • 不正なルートコンテキストでのファイルシステムマウント
  • 期待される PolicyKit 認可のバイパス
  • 安全でない fstab 管理デバイスのマウント
  • 影響を受けるラボ構成での setuid ベースの昇格
  • 攻撃者が制御または準備したファイルシステムからのファイルの予期しない実行

悪用条件

これはローカル脆弱性です。

関連する条件は以下のとおりです。

条件必須
ローカルユーザーアクセスはい
脆弱な udisks2 バージョンはい
as-user 機能が存在するはい
適切な fstab 管理マウントターゲットはい
脆弱な認可パスはい
リモートアクセスいいえ

リポジトリ構成

.
├── README.md
├── disk2root.sh              ← メインエクスプロイト(自己完結型 LPE)
└── poc/
    ├── setup_lpe_env.sh       ← ラボ環境のセットアップ
    ├── f2_mount_as_user_bypass.sh
    ├── f2_check_nosuid.sh
    ├── f2_suid_test.sh
    ├── f2_final.sh
    └── cleanup_lpe_env.sh

エクスプロイト — disk2root.sh

自己完結型の武器化されたエクスプロイト。独自の SUID ルートペイロードをビルドし、準備されたディスクイメージを作成し、as-user=root polkit バイパスを介してマウントし、ルートシェルにドロップします。

クイックスタート

オプション 1 — root として実行(SSH を含むあらゆる環境で動作):

./disk2root.sh

スクリプトは自動的に次の処理を行います。

  1. 静的 SUID ルートシェルバイナリをコンパイル
  2. ループデバイス上に 32MB の ext4 イメージを作成
  3. debugfs 経由で uid=0 mode=4755 のバイナリを注入
  4. x-udisks-auth 付きの fstab エントリを追加
  5. su 経由で権限のないユーザーにドロップ
  6. as-user=root を使用して Filesystem.Mount を呼び出し(polkit バイパス)
  7. SUID バイナリを実行 → ルートシェル
  8. 終了時にすべてをクリーンアップ

昇格元のユーザーを指定する場合:

./disk2root.sh testuser

ユーザーが指定されていない場合、スクリプトはシステム上の最初の通常ユーザーを選択するか、一時的なユーザーを作成します。


オプション 2 — 権限のないユーザーとして実行(デスクトップ / アクティブセッション):

./disk2root.sh

アクティブな polkit セッション(デスクトップログイン、GNOME/KDE)があるシステムでは、スクリプトは完全に自己完結型です。udisksctl または D-Bus LoopSetup を介して独自のループデバイスを作成し、as-user=root を介してマウントし、事前設定なしで昇格します。


オプション 3 — 権限のないユーザーとして実行(SSH、セットアップ後):

環境がすでに準備されている場合(例:root として poc/setup_lpe_env.sh を実行した、または以前に root として ./disk2root.sh を実行した)、権限のないユーザーでも再エクスプロイトできます。

./disk2root.sh

スクリプトは脆弱な fstab エントリを自動的に検出して使用します。


クリーンアップ

./disk2root.sh --cleanup

すべてのアーティファクト(fstab エントリ、ループデバイス、マウントポイント、一時ユーザー)を削除します。


戦略カスケード

権限のない状態で実行すると、スクリプトは複数のパスを順番に試行します。

[A] 自己完結型
    ペイロードをビルド → ext4 イメージを作成 → debugfs で SUID バイナリを注入
    → ループセットアップ(python3 GIO / udisksctl) → as-user=root でマウント
    ✓ デスクトップセッションで動作

[B] Fstab フォールバック
    /etc/fstab で x-udisks-auth / user / users エントリをスキャン
    → as-user=root でマウント → マウントされた fs 上の SUID バイナリを検索
    ✓ 環境が準備されている場合、SSH で動作

出力例

╔═════════════════════════════════════════════════════╗
║  CVE-2026-7867 — disk2root                          ║
║  udisks2 as-user polkit bypass → LPE root shell     ║
╚═════════════════════════════════════════════════════════╝
ツールをダウンロード