Flatpakに致命的な脆弱性、サンドボックスを完全に突破される
Linuxアプリのサンドボックス化を売りにしてきたFlatpakが、そのサンドボックスを完全に無効化される脆弱性を抱えていた。バージョン1.16.4で修正されたが、守るはずの壁に穴が空いていた事実は重い。
Linuxアプリのサンドボックス化を売りにしてきたFlatpakが、そのサンドボックスを完全に無効化される脆弱性を抱えていた。バージョン1.16.4で修正されたが、守るはずの壁に穴が空いていた事実は重い。
サンドボックスの「完全突破」が意味すること
Flatpak 1.16.4が4月7日にリリースされた。通常のバグ修正リリースではない。CVE-2026-34078として登録された脆弱性は、サンドボックスの「完全な突破」を可能にするものだった。
ホストファイルへのアクセス、そしてホストコンテキストでのコード実行。サンドボックスという言葉が持つ意味を考えれば、これは最悪のシナリオだ。
問題の原因は、Flatpakポータルがsandbox-exposeオプションで受け取るパスにあった。悪意あるアプリがシンボリックリンクを操作することで、任意のパスを指し示すことができる。ポータルはそのリンクを追いかけ、解決されたホスト側のパスをサンドボックス内にマウントしてしまう。
ユーザーがインストールしたアプリが、ホームディレクトリのあらゆるファイルにアクセスできる状態。SSHキーも、ブラウザの保存パスワードも、すべてが露出しうる。
「サンドボックスだから安全」という前提は、崩れていた。
もうひとつの深刻な穴
CVE-2026-34078だけではなかった。CVE-2026-34079は、ホストファイルシステム上の任意ファイルを削除できる脆弱性だ。
ld.soのキャッシュ処理において、古いキャッシュファイルを削除する際に、アプリが制御するパスがキャッシュディレクトリ内にあるかどうかを確認していなかった。結果として、Flatpakアプリがホスト上の任意のファイルを消去できる状態にあった。
さらに2件のセキュリティ問題も修正されている。system-helperコンテキストでの任意ファイル読み取り(GHSA-2fxp-43j9-pwvc)と、他ユーザーのアプリダウンロードを妨害できる問題(GHSA-89xm-3m96-w3jg)だ。
計4件の脆弱性がバージョン1.16.4で修正された。
| 識別子 | 脆弱性の内容 | 影響 |
|---|---|---|
| CVE-2026-34078 | sandbox-exposeオプションのシンボリックリンク操作でサンドボックスを完全突破 | ホストアクセス コード実行 |
| CVE-2026-34079 | ld.soキャッシュ処理でパス検証が欠如、任意ファイルを削除可能 | 任意ファイル削除 |
| GHSA-2fxp- 43j9-pwvc |
system-helperコンテキストで任意ファイルを読み取り可能 | 情報漏洩 |
| GHSA-89xm- 3m96-w3jg |
他ユーザーのアプリダウンロードを妨害・孤立化可能 | サービス妨害 |
Flatpakのセキュリティ神話
Flatpakは「サンドボックス化されたデスクトップアプリケーション」の配布フレームワークとして、Linuxデスクトップのセキュリティを向上させると謳ってきた。bubblewrapによる名前空間分離、seccompによるシステムコールフィルタリング、ポータルを介したリソースアクセス制御。
しかし現実には、サンドボックス突破の脆弱性が繰り返し発見されている。2024年にはRequestBackgroundポータルを悪用したサンドボックス脱出(CVE-2024-32462)、persistディレクトリのシンボリックリンク問題(CVE-2024-42472)が修正された。
Flathubで配布される人気アプリの多くが、ホームディレクトリへの完全なアクセス権を持つ。filesystem=homeやfilesystem=hostといった広範な権限宣言が、実質的にサンドボックスを無効化している。権限表示は「サンドボックス」アイコンを見せるが、その内実を理解するにはFlatpakの内部構造を知る必要がある。
インストール時に表示される権限情報と、実行時に付与される権限が一致しない問題も過去に報告されている。メタデータにnullバイトを含めることで、表示を偽装できた。
対応は急務
各Linuxディストリビューションが1.16.4を取り込むまでの間、暫定的な回避策としてFlatpakポータルを無効化することも可能だが、多くのアプリが正常に動作しなくなる。現実的には、ディストリビューションからのアップデートを待つことになる。
Flatpakを使っているなら、以下のコマンドでバージョンを確認できる。
flatpak --version で現在のバージョンを確認し、1.16.4未満であればパッケージマネージャでアップデートを確認すべきだ。
サンドボックスは万能ではない
今回の件は、サンドボックス技術の限界を改めて示している。
コンテナ型のサンドボックスは、ブラウザやモバイルOSが採用する精緻なプロセス分離とは異なる。Chromiumがサンドボックス脱出の脆弱性に対して最大25万ドルの報奨金を設定しているのは、その困難さと重要性を反映している。
Flatpakが「100%安全」を保証したことはない。それでも「サンドボックス」という言葉が与える安心感と、現実の保護レベルには乖離がある。
この乖離を認識した上で使うか、認識せずに使うか。その差は小さくない。
参照元
関連記事
- Firefox 149.0.2公開、5件の高深刻度脆弱性を修正
- トーバルズ、Linux 7.0来週リリースへ rc7で最終確認
- 悪意あるUSBを検出するLinuxカーネルドライバが登場
- AIのバグ報告がゴミから本物へ——Linuxカーネル管理者が語る「謎の転換点」
- Rust Coreutils 0.8が登場、dd 45%高速化とブラウザ実行環境
- AnthropicのClaude Mythosが「すべての主要OS・ブラウザ」で数千のゼロデイ脆弱性を発見、危険すぎて一般公開せず
- MesaがLinuxカーネルと同格に――Fedoraで永続的アップデート例外を獲得
- Windowsゼロデイ「BlueHammer」流出、MSRCへの怒りが引き金
- Linux 7.1、37年間続いたi486サポートに幕を下ろす
- YCがDelveを切り捨てた――AI時代の「信頼」が崩壊するとき