GrapheneOSがGoogleに無視されたAndroidの重大なVPN漏洩を修正

プライバシーを重視するユーザーにとって、「常時接続VPN」の約束は、しばしば最後の防衛線となります。これは、データが安全なトンネル内にカプセル化されていない限り、デバイスからデータが一切送信されないように設計されています。しかし、最近公開されたAndroid 16の脆弱性は、これらの厳格なロックダウン保護でさえバイパスされる可能性があることを証明し、ユーザーの実際の公開IPアドレスをリモートサーバーにさらす可能性があります。

この欠陥はGoogleに報告されましたが、同社は問題を「Won't Fix(修正しない)」と分類し、パッチの発行を拒否しました。主流のAndroidとセキュリティ強化型フォークとの間の優先順位の違いを浮き彫りにする動きとして、GrapheneOSは最新リリースでこの漏洩を修正するために介入しました。

漏洩の仕組み:QUICとsystem_server

この脆弱性は、セキュリティ研究者の「lowlevel/Yusuf」によって発見・公開されました。問題の根本は、QUIC (Quick UDP Internet Connections) セッションの終了処理を扱うためにAndroidのネットワークスタックに新しく導入された機能にあります。

通常、UDPソケットが破棄される際、システムはセッションを正常に終了させたいと考えます。これを促進するために、Androidは、ソケットの破棄時に送信される特定のUDPペイロードをアプリケーションが登録できるAPIを導入しました。

技術的な分析によると、欠陥は以下のメカニズムを通じて現れます:

  1. 任意のペイロード登録: 標準的な INTERNET および ACCESS_NETWORK_STATE 権限を持つアプリケーションは、system_server プロセスに任意のUDPペイロードを登録できます。
  2. 特権付き送信: その後、アプリケーションのUDPソケットが破棄されると、高度に特権化されたプロセスである system_server が、保存されたペイロードを送信します。
  3. VPNバイパス: system_server は昇格されたネットワーク特権で動作するため、標準的なVPNルーティング制限の対象外となります。その結果、パケットはデバイスの物理ネットワークインターフェースを介して直接送信され、「VPNなしで接続をブロック」というロックダウンモードを完全にバイパスします。

Android 16を実行するPixel 8を使用したデモンストレーションにおいて、研究者は、Proton VPNが有効でロックダウンモードがアクティブであっても、アプリがデバイスの実際の公開IPアドレスをリモートサーバーに漏洩させることができることを示しました。

Googleの対応:「Won't Fix」

技術的な欠陥そのものよりも、おそらく議論を呼ぶのは、報告に対するGoogleの反応です。基本的な権限を持つあらゆるアプリが識別可能なネットワーク情報を漏洩させることができるという研究者の主張にもかかわらず、Googleのセキュリティチームは、このバグを以下のように分類しました:

  • "Won't Fix (Infeasible)"
  • "NSBC" (Not Security Bulletin Class)

Googleは、この問題がAndroidセキュリティアドバイザリに含まれる基準を満たしていないと主張し、修正なしで2026年4月29日に公開情報の開示を許可しました。

GrapheneOSによる介入

GrapheneOSは、主にPixelデバイス向けに開発されたプライバシー中心のOSです。迅速に対応しました。リリース 2026050400 において、プロジェクトは registerQuicConnectionClosePayload の最適化を完全に無効化することで、攻撃ベクトルを無効化しました。

この特定の修正に加えて、このアップデートは2026年5月のAndroidセキュリティパッチレベルを統合し、複数のブランチ(6.1, 6.6, および 6.12)にわたるLinuxカーネルを更新し、Dynamic Code Loadingに対するさらなる制限を実装しました。

コミュニティの視点と技術的批判

この漏洩の露呈は、技術コミュニティの間で大きな議論を巻き起こしました。特にGoogleによる修正の拒否についてです。一部の観察者は、このような「漏洩」は偶然ではないかもしれないと示唆しています。あるコメント主は次のように述べています:

"Just like manifest v3, it's not in their best interests to disallow snooping. それは彼らのビジネスモデルを損なうからです。"

より深い技術的な観点から、一部のアナリストは、この欠陥が単なる漏洩ではなく、Androidサンドボックスの失敗を代表していると主張しています。あるコミュニティメンバーは、この脆弱性が、OSが適切な権限チェックなしに、アプリが任意のバイト配列をOSに代行して送信させる設定を行うことを含んでおり、これは「特権昇格」および「アプリサンドボックスの脱出」に相当すると主張しています。

ストックAndroidユーザー向けの緩和策

GrapheneOSに切り替えることができないものの、ストックAndroidでこのリスクを緩和したいユーザーは、研究者がAndroid Debug Bridge (ADB) を介した手動の回避策を提案しています。ユーザーは close_quic_connection DeviceConfigフラグを無効化できます。ただし、これは開発者アクセスを必要とする一時的な措置であり、将来のシステムアップデートによって上書きされる可能性があります。

この出来事は、「標準」のセキュリティと「強化」されたセキュリティの間のギャップを改めて認識させるものです。ストックAndroidは幅広いツールセットを提供しますが、GrapheneOSは、脅威モデルが絶対的なネットワーク隔離を必要とする人々にとって、なぜ専門化された、セキュリティ第一のアプローチが必要であるかを証明し続けています。

Sources