
CVE-2025-6019: udisks2 XFS リサイズにおける TOCTOU 特権昇格 このリポジトリには、XFS ファイルシステムのリサイズを介したローカル特権昇格を可能にする、udisks2 の競合状態 (Race Condition) の脆弱性である CVE-2025-6019 の Proof of Concept (PoC) が含まれています。
このエクスプロイトは、以下の条件を満たすあらゆる Linux システムで汎用的に動作するように設計されています:
脆弱なサービス: udisks2 (D-Bus アクセスが有効な環境)。
ファイルシステムツール: xfsprogs がインストールされていること (具体的には mkfs.xfs)。
アーキテクチャ: 非依存 (x86、x64、ARM などで動作)。
このエクスプロイトは以下の構成で検証されています:
weapon.py スクリプトは、通常 sbin に制限されている mkfs.xfs を見つけるための環境 PATH 設定を自動的に処理します。このエクスプロイトには、プロトファイル (Protofile) を使用して作成された特別に細工された XFS イメージが必要です。これにより、イメージ作成フェーズで root 権限を必要とせずに、SUID root バイナリ (pwnbash) を含むファイルシステム構造を定義できます。mkfs.xfs -p フラグはこのテンプレートを使用して、SUID ビットをイメージのメタデータに直接焼き付けます。
リモートセッション (SSH、Docker) の標準ユーザーは udisks2 の使用が制限されています。このスクリプトを実行して、ローカルセッション (seat0) を偽装します:
python3 bypass.py
weapon.py を使用して SUID イメージを生成します。このスクリプトは XFS プロトファイルを使用して、4755 パーミッションのシェルを埋め込みます。 python3 weapon.py
trigger.sh を実行して、udisks2 に D-Bus リサイズ要求を大量に送信します。これにより、デーモンは /tmp/blockdev.XXXXXX に一時マウントポイントを作成せざるを得なくなります。 chmod +x trigger.sh ./trigger.sh
自動化スクリプトはリソースに制約のある環境では不安定になる可能性があるため、手動方式を推奨します: /tmp で一時マウントポイントを監視します: watch -n 0.1 "ls -la /tmp" ターゲットの特定: デフォルトの堅牢な drwx------ ではなく、ワールドリーダブルなパーミッション (例: drwxr-xr-x) のディレクトリを探します。
ペイロードの実行: 特定できたら、ディレクトリに移動してシェルを実行します:
cd /tmp/blockdev.Q797J3 # Example directory name ./pwnbash -p 結果: 実行が競合ウィンドウ内 (nosuid フラグが適用される前) に行われた場合、root シェルが取得されます。
bypass.py: ~/.pam_environment を介してローカルセッション (seat0) を偽装し、Polkit の制限をバイパスする設定スクリプト。
weapon.py: XFS プロトファイルテンプレートを使用した SUID イメージ生成ツール。
trigger.sh: udisks2 のファイルシステムリサイズにおける D-Bus 競合状態トリガー。
詳細な解説はこちら: 👉 NetaCoding - https://netacoding.com/posts/udisks2-cve_lpe/
このプロジェクトは教育および許可されたセキュリティテストの目的のみに提供されます。コンピュータシステムへの不正アクセスは違法です。