WLAN-Name macht drahtloses Netzwerk auf iOS dauerhaft unbrauchbar
In heutigen, sehr komplexen Betriebssystemen existieren hunderte unerkannte Sicherheitsmängel – und manchmal werden diese auch zufällig entdeckt.
Carl Schou nannte sein drahtloses Netzwerk "%p%s%s%s%s%n" – und als er versuchte, sein iPhone XS mit iOS 14.4.2 mit diesem Netzwerk zu verbinden, schaltete sich einfach das WLAN auf dem Smartphone komplett aus. Über die Systemeinstellungen war es nicht mehr möglich, die WLAN-Funktionalität zu reaktivieren.
Der Hintergrunddienst "wifid" ("WiFi-Daemon") stürzt auf dem Gerät beim Versuch, die WLAN-Funktion wieder zu aktivieren, sofort ab – selbst ein Neustart des iPhones bringt keine Abhilfe.
Erst das Zurücksetzen der Netzwerkeinstellungen in den Systemeinstellungen hilft gegen diesen Fehler – dadurch "vergisst" das iPhone, mit welchen Netzwerken zuerst Verbindungen hergestellt werden sollen. "wifid" übernimmt auf dem iPhone und iPad diverse Funktionen: So ist es beispielsweise nach dem Verbindungsversuch mit dem Netzwerk "%p%s%s%s%s%n" auch nicht mehr möglich, über AirDrop Dateien zu verschicken oder zu empfangen.
Zeichenkettenformatierung und Logging-Dienst schuldEin Prozentzeichen hat in Zeichenketten eine besondere Funktion: Es dient als Platzhalter für das Einfügen von Informationen. Will zum Beispiel eine App eine Anzahl von Personen anzeigen, ist die Zeichenkette "%d Personen" hinterlegt. Das "%d" sagt, dass eine Dezimal-Zahl an dieser Stelle erwartet wird. Solche Platzhalter sind dahingehend gefährlich, dass kleine Modifikationen zu ungewollten Speicherzugriffen führen können. Ersetzt man beispielsweise das %d durch ein %@, interpretiert das System den Zahlenwert als Speicheradresse – oder bei "%s" als weitere Zeichenkette.
Genau dies ist hier der Fall: Da der Netzwerkname aus solchen Platzhaltern besteht, interpretiert ein Dienst diese ungewollt. In diesem Fall scheint "wifid" beim Starten die aktuellsten Informationen in der Konsole ausgeben zu wollen – und stürzt ab, da hier unbeabsichtigt die Platzhalter interpretiert werden und es zu einer Speicherschutzverletzung kommt.
Noch kein Angriffsvektor bekanntBislang ist das Problem aber noch ein reines Ärgernis, denn einen direkten Angriffsvektor, welcher das Auslesen von Daten oder das Kompromittieren von Systemkomponenten erlaubt, ist bislang nicht bekannt. Es ist davon auszugehen, dass Apple das Problem mit einem baldigen iOS-Update aus der Welt schafft. Sollte es sich tatsächlich nur um eine unbeabsichtigte Auswertung der Platzhalter in WLAN-Netzwerknamen handeln, ist eine Fehlerbehebung für Apple wahrscheinlich leicht umzusetzen.