Ubuntuのsnap-confineコンポーネントに新たに公表されたローカル権限昇格の脆弱性により、権限を持たないローカルユーザーであれば誰でも、Ubuntu Desktop 24.04、25.10、26.04のデフォルトインストール環境で完全なroot権限を取得できることが明らかになりました。
CVE-2026-8933として追跡されているこの脆弱性は、Qualys Threat Research Unit(TRU)によって発見され、CVSSスコアは7.8(高)と評価されています。
この脆弱性は、2025年半ばに導入されたセキュリティ強化策に起因します。当時Canonicalは、最小権限の原則(Principle of Least Privilege)を推進する取り組みの一環として、snap-confineをset-uid-rootバイナリからset-capabilitiesモデルへと移行させました。
この変更はリスク低減を意図したものでしたが、結果としてsnap-confineは、cap_sys_adminやcap_dac_overrideといったroot権限に近いケイパビリティを保持したまま、呼び出し元の権限を持たないユーザーの実効uidで実行されるようになりました。
その結果、snap-confineが一時的に作成するファイルやディレクトリは、rootではなく権限を持たないユーザーの所有物となり、悪用可能な狭いレースコンディション(競合状態)の窓が生まれてしまいます。
攻撃者は、snap-confineが一時的なスクラッチディレクトリ(/tmp/snap.rootfs_XXXXXX)を作成する瞬間と、その所有権がrootに移される瞬間との間でレースを競うことができます。
この窓の間に、攻撃者はスクラッチディレクトリ上にFUSEファイルシステムをマウントし、snap-confineがその後に行うバインドマウントおよびtmpfsマウントを横取りしてアンマウントすることで、実質的にディレクトリの制御を取り戻します。
続いて攻撃者は任意のファイルターゲットを指すシンボリックリンクを仕込み、O_NOFOLLOW保護を欠いた安全でないopen()呼び出しを介して、snap-confineにそのファイルをroot所有で作成させるよう仕向けます。
snap-confineはAppArmorによって制限されているため、攻撃者はファイルシステム上の任意の場所に書き込むことはできません。しかしこのプロファイルは/run/udev/**への読み書きアクセスを許可しています。
この任意ファイル作成のプリミティブを悪用して、PROGRAM=ディレクティブを含む悪意ある.rulesファイルを/run/udev/rules.dに投下し、その上でFUSEのマウント/アンマウントイベントを発生させることで、攻撃者はsystemd-udevdに完全なroot権限で任意のシェルコマンドを実行させることができます。
Qualysはこの一連の流れを実証し、Ubuntu 26.04と24.04.3 LTSの両テスト環境で、権限を持たないシェルがuid=0(root)へと昇格する様子を示しました。
この脆弱性は、関連するカーネルのptraceレースコンディションであるCVE-2026-46333と併せて公表されました。こちらは、特権プロセスの終了時におけるget_dumpable()ロジックのタイミング問題を通じて、独立して機微情報の漏洩を許してしまうもので、pidfd_getfd()と連鎖させることで、終了中のrootプロセスから認証情報を取得することも可能です。
開示のタイムラインを見ると、QualysはCanonicalに対して2026-04-22にこの問題を報告し、2026-07-13にはlinux-distrosメーリングリストへパッチが送付され、2026-07-21に協調的な形で一般公開されました。
CVE-2026-46333については、プロセス間のptraceデバッグを業務上必要としない管理者であれば、sysctl経由でkernel.yama.ptrace_scope=2を設定することでリスクを低減できます。
影響を受けるUbuntu Desktopのリリースを運用している組織は、直ちにsnapdのアップデートを適用すべきです。この脆弱性は、権限を持たないローカルアクセスのみで完全なroot権限の奪取に至るためです。
SOC調査の死角を減らし、ANY.RUNで脅威をより早期に封じ込めることで、対応コストと業務への支障を軽減しましょう。
翻訳元: https://cyberpress.org/ubuntu-snap-confine-flaw/