Mullvad 推奨 VPNユーザーならやるべき Stock AndroidのADB設定
何が起きた?
Android 16 に、「VPNを強制していても、一部通信をVPN外へ出せてしまうバグ」
が見つかった。
対象はMullvadだけではなくAndroid上の全VPNアプリです。
どんな問題?
本来はアプリ → VPN → インターネットになるはず。 しかし、アプリ → インターネット直通ができてしまう。
Always-On VPN VPNなし通信ブロック
を有効にしていても実IPアドレスが漏れる。
ここがかなり問題視されています。
原因
Android の
registerQuicConnectionClosePayload
という機能が原因。
「QUIC通信終わったよ」とサーバーへ最後に通知する仕組み。
しかし Android 16 の実装では「この通信はVPNへ流すべきか?」
の確認が不十分。その結果、VPN外へ出せてしまう。
Googleの対応
「Won’t Fix (Infeasible)」 (修正困難としてクローズ)されたとのこと。
なので Mullvad はかなり強めに問題視しています。
GrapheneOSの対応
GrapheneOS は迅速に修正した。
では通常Androidを使っている方向けの対策
adb shell device_config put tethering close_quic_connection -1
をしてください。
本当にできているか心配な方は以下のコマンドも打ってください。-1と出れば成功しています。
adb shell device_config get tethering close_quic_connection
成功が確認できたら
adb reboot してください。
このコマンドを打つことによるデメリット
終了通知を送らないので:
サーバー側接続が少し残る
timeoutまで half-open
になる。
ただ通常は大問題ではないです。
また、OSや開発者サービスアップデート時にはリセットされもう一度コマンドを売り直す必要があるかもしれません。
Any app on recent Android versions can leak certain traffic | Mullvad VPN