Die Sicherheitsforscher von Team82, der Forschungsabteilung des Spezialisten für die Sicherheit von cyber-physischen Systemen (CPS) Claroty, haben im Rahmen des Pwn2Own-Wettbewerbs fünf Sicherheitslücken im weitverbreiteten Router Netgear Nighthawk RAX30 entdeckt. Die erfolgreiche Ausnutzung dieses Schwachstellen-Sets ermöglicht es Angreifern, die Internetaktivitäten von Benutzern zu überwachen, Internetverbindungen zu kapern und den Datenverkehr auf bösartige Websites umzuleiten oder Malware in den Netzwerkverkehr einzuschleusen. Darüber hinaus können Cyberkriminelle auf vernetzte intelligente Geräte wie Sicherheitskameras, Thermostate oder intelligente Schlösser zugreifen und diese steuern, Router-Einstellungen einschließlich Anmeldedaten oder DNS-Einstellungen ändern oder ein kompromittiertes Netzwerk nutzen, um Angriffe auf andere Geräte oder Netzwerke zu starten. Mittlerweile hat Netgear alle Schwachstellen gepatcht und rät den Nutzern dringend, ihre RAX30-Router zu aktualisieren.
Die Sicherheitsforscher von Team82 entdeckten im Rahmen des Hacker-Wettbewerbs eine Stack-basierte Pufferüberlauf-Schwachstelle. Diese Art von Schwachstellen lässt sich normalerweise leicht ausnutzen, wenn es keine Stack-Schutzmechanismen gibt. Allerdings hat Netgear alle Binärdateien im RAX30-Router mit Stack Canaries kompiliert, was eine Ausnutzung erheblich erschwert. Stack Canaries sind ein weit verbreiteter Sicherheitsmechanismus, der zum Schutz vor Pufferüberlauf-Angriffen beiträgt. Hierbei wird ein kleiner Wert auf dem Stack platziert (der sogenannte Canary), der vor der Rückkehr einer Funktion auf Änderungen überprüft wird. Wenn der Canary manipuliert wurde, wird das Programm beendet, um weitere Angriffe zu verhindern. Prinzipiell kann dieser Schutzmechanismus auf drei Weisen umgangen werden: durch die Identifizierung einer weiteren Schwachstelle, die den Canary leakt, durch Brute-force (was allerdings nur in bestimmten Fällen möglich ist) und durch eine „logische“ Umgehung, bei der der Overflow erzeugt wird, bevor der Canary geprüft wird. Letzteres wird zwar häufig bei der Umgehung beschrieben, gleichwohl gibt es in der Praxis nur wenige Beispiele, bei denen diese Technik erfolgreich genutzt wurde.
Team82 fand eine Reihe von insgesamt fünf Sicherheitslücken, die den Stack Canary gewissermaßen logisch umgeht, und so einen Angriff ermöglicht:
- Mit CVE-2023-27357 (Sensitive information exposed without authentication) wird die Seriennummer des Geräts ermittelt.
- Durch CVE-2023-27369 (SSL read stack overflow) sind Angreifer in der Lage, eine HTTPs-Nutzlast ohne Größenbeschränkung zu senden.
- Mithilfe von CVE-2023-27368 (sscanf stack overflow) lässt sich eine Nutzlast schreiben, die lang genug ist, um die Socket-IP zu überschreiben, die Authentifizierung zu umgehen und die Gerätekonfiguration zu lesen.
- CVE-2023-27370 (Plain text secrets in the configuration) wird genutzt, um die Klartext-Sicherheitsfragen und -antworten zu erhalten. Gemeinsam mit der Seriennummer (Schritt 1) kann das Admin-Passwort geändert werden.
- Nach der Änderung des Passworts kann ein „magisches Paket“ gesendet werden, um einen eingeschränkten Telnet-Server auf dem Gerät zu aktivieren.
- Schließlich erhalten Angreifer durch CVE-2023-27367 (Restricted shell escape) Remotecodeausführung mit Root-Zugriff auf dem Gerät.
Durch die Verknüpfung der fünf CVEs können betroffene RAX30-Router kompromittiert werden. Dabei stellt die Remotecodeausführung vor der Authentifizierung auf dem Gerät die schwerwiegendste Schwachstelle dar.
Weitere Informationen, Hintergründe und technische Details finden sich im entsprechenden Blog-Beitrag von Claroty.