CVE-2026-53613 PoC
mount(8) における TOCTOU 脆弱性。ローカルでの権限昇格により root を取得できます。
影響を受けるバージョン
- util-linux 2.41.0 から 2.41.4
- util-linux 2.42.0 から 2.42.1
エクスプロイト
| ファイル | 手法 | ターゲット |
|---|
| exploit_shell.sh | SSH 鍵の抽出 | /root |
| exploit_direct_shell.sh | 直接シェル | /bin |
クイックスタート
# 方法 1: SSH 鍵を抽出して root として SSH 接続
bash exploit_shell.sh 1000
# 方法 2: /bin をマウントしてシェルを起動
bash exploit_direct_shell.sh 2000
低速なシステムでは、成功率を上げるためにイテレーション回数を増やしてください。
動作の仕組み
- mount(8) のパス検証における TOCTOU レースウィンドウ
- mount が検証する前にディレクトリをシンボリックリンクに置き換える
- カーネルがシンボリックリンクをたどって機密領域(/root または /bin)に到達
- マウントされたファイルシステムにアクセスするか、特権コードを実行
- 権限昇格が達成される
攻撃チェーン
権限のないユーザー
↓
mount(8) SUID バイナリ
↓
TOCTOU レースに勝利
↓
/root ファイルシステムをマウント
↓
SSH 秘密鍵を抽出
↓
root として SSH 接続
↓
ROOT シェル
要件
- 脆弱な util-linux を搭載した Linux システム
- 空きディスク容量 256MB
- /tmp への書き込みアクセス
- sudoers 設定は不要(mount(8) は SUID)
- SSH が稼働していること(方法 1 の場合。方法 2 では任意)
技術的詳細
この脆弱性は以下の理由で存在します:
- mount(8) が stat() を使用してターゲットパスを検証する
- 時間が経過する(レースウィンドウ)
- 攻撃者がディレクトリを /root または /bin へのシンボリックリンクに置き換える
- mount(8) が元のパス文字列で mount() システムコールを呼び出す
- カーネルがシンボリックリンクをたどり、攻撃者の場所に機密ディレクトリをマウントする
- 検証とシステムコールの間に再検証がない = TOCTOU
成功の兆候
- レース勝利メッセージが表示される
- マウントされたファイルシステムにアクセスできる
- シェルが起動する、または SSH ログインが成功する
パッチ適用済みバージョン
- util-linux 2.41.5+
- util-linux 2.42.2+
パッチは fd ベースのマウント操作を使用して、シンボリックリンク TOCTOU を防止します。
免責事項
教育目的および許可を得たセキュリティテスト専用です。
- ✅ 許可を得たペネトレーションテスト
- ✅ 脆弱性研究
- ✅ 防御的評価
- ❌ 不正アクセス
- ❌ 悪意のある悪用
所有していないシステムでテストする前に、適切な許可を取得してください。