Spezieller WLAN-Name macht drahtloses Netzwerk auf iOS unbrauchbar

iOS
Julia

Ein Nutzer gab seinem Netzwerk den kryptischen Namen "%p%s%s%s%s%n". Nach einem erfolglosen Verbindungsversuch beendete sich das WLAN automatisch und ließ sich auch nicht wieder reaktivieren. Dahinter steckt eine fälschliche Interpretation durch iOS, die an der Stelle eigentlich nicht stattfinden sollte.

Spezieller WLAN-Name macht drahtloses Netzwerk auf iOS unbrauchbar

Es ist nichts ungewöhnliches, dass Nutzer hin und wieder auf kleinere Mängel und Bugs in Systemen stoßen, denn schließlich sind diese komplex und ineinander verschachtelt. Ein komplett fehlerloses System wird es nicht geben. Einen solchen Mangel, der das drahtlose Netzwerk auf iOS betrifft, hat der Nutzer Carl Schou entdeckt.

Zeichenkettenformatierung machte drahtloses Netzwerk unbrauchbar

Carl Schou nannte sein Netzwerk "%p%s%s%s%s%n", was einer Zeichenkette entspricht. Anschließend wollte er sein iPhone XS, das mit iOS 14.4.2 läuft, mit dem Netzwerk verbinden. Daraufhin schaltete sich das WLAN einfach komplett aus und ließ sich auch nicht wieder reaktivieren. Dies lag an einem Hintergrunddienst mit dem Namen "wifid" (Lang: WiFi-Daemon), der für die WLAN-Verbindung benötigt wird. Dies schließt Airdrop mit ein. Wenn er nicht funktioniert, sondern anstürzt, funktioniert auch die Funktionalität des WLANs nicht mehr. Ein Neustart behob das Problem nicht, nur ein komplettes Zurücksetzen der Netzwerkeinstellungen verschaffte Abhilfe, mit dem bereits gespeicherte Netzwerke nicht mehr gespeichert werden.

Doch was steckt hinter dem kuriosen Fehler, dass ein Dienst durch die Wahl eines Namens abstürzt?

Nutzer brauchen eigentlich keine Angst zu haben, dass der Name ihres Netzwerkes ebenfalls zu Abstürzen führen könnte. Übeltäter ist hier die spezielle Zeichenkette, denn die eingefügten Prozentzeichen dienen als Platzhalter für Variablen und Funktionen. Um eine einfaches und in dieser Zeichenkette ungenutztes Beispiel zu nennen, "%d" beschreibt eine Dezimalzahl, die an dieser Stelle erwartet wird. Wenn hier keine Dezimalzahl eingelesen werden kann, meldet der Code einen Fehler und beendet sich selbst. Im Falle eines Hintergrunddienst bedeutet der Abbruch eines Codes aber einen Absturz. Ganz genau lässt sich das wie folgt rekonstruieren: "wifid" möchte bei einem Start Informationen in einer Konsole ausgeben, welche auf dem iPhone automatisch im Hintergrund läuft. (Auf dem iMac gibt es die Konsole auch sichtbar als "Terminal".) Da die Platzhalter interpretiert werden, aber die erwarteten Variablen nicht auftauchen und der Speicherschutz verletzt wird, stürzt das Programm ab. Normalerweise werden Informationen wie Namen in einem "String" gespeichert, also nicht als Variable, sondern als feste Zeichenkette.

Das Problem ist nicht schlimm, sondern eher lästig für wenige Menschen. Dennoch ist es wahrscheinlich, dass Apple das Problem bald beheben wird. Zum einen ist es nicht viel Aufwand, zum anderen können auch kleine Fehler wie dieser zu einer potentiellen Sicherheitslücke werden.

Bisher keine Kommentare
Kommentieren
Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.