snapd におけるローカル権限昇格の脆弱性(CVE-2026-3888)の概念実証です。この脆弱性により、影響を受ける Ubuntu システムにおいて、非特権のローカル攻撃者が systemd-tmpfiles によって削除された後にプライベートディレクトリ /tmp/.snap を再作成することで、権限を root に昇格させることができます。
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:Hこの脆弱性は、2つの特権ユーティリティ間の意図しない相互作用から生じます:
攻撃者は systemd-tmpfiles のクリーンアップサイクルを操作することで、この競合状態を悪用できます。ディレクトリ /tmp/.snap が削除されると、攻撃者は悪意のあるペイロードでそれを再作成します。次回のサンドボックス初期化時に、snap-confine がこれらのファイルを root としてマウントし、特権コンテキストでの任意のコード実行を可能にします。
root アクセスを取得できます。警告: このエクスプロイトは、教育および許可されたセキュリティ研究を目的としています。自己責任で使用してください。
gcc コンパイラがインストールされていること(sudo apt install build-essential)。/tmp/.snap が systemd-tmpfiles によって削除されている必要があります。これは Ubuntu 24.04 では30日後、それ以降のバージョンでは10日後に発生します。sudo rm -rf /tmp/.snap で手動でクリーンアップをシミュレートできます。このリポジトリをクローンします:
git clone https://github.com/tu-usuario/cve-2026-3888-poc.git
cd cve-2026-3888-poc
依存関係をインストールします:
pip install -r requirements.txt
PoC を実行します: スクリプトは脆弱性を検証し、悪意のあるライブラリを作成してエクスプロイトをトリガーします。
python3 cve_2026_3888_poc.py
結果を確認します:
エクスプロイトが成功すると、root として実行された id コマンドの結果を含むファイル /tmp/pwn.txt が作成されます。
システムをクリーンアップします: エクスプロイトによって作成されたアーティファクトを削除するには、次を実行します:
python3 cve_2026_3888_poc.py --cleanup