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

mullvad.net