Un chercheur en sécurité a découvert un étrange bug sur les iPhone d'Apple. En leur demandant de rejoindre un réseau Wi-Fi nommé d'une certaine manière, il est possible de casser la connexion sans fil de l'appareil. Comment est-ce possible ? À cause d'un vieux bug démodé.

Un bug étrange a été découvert au sein du système d’exploitation des iPhone le 18 juin 2021. Il est possible de casser la connexion Wi-Fi des smartphones Apple en leur demandant tout simplement de se connecter à un point d’accès portant un nom quelque peu barbare.

Si vous connectez votre iPhone à un réseau Wi-Fi nommé « %p%s%s%s%s%n », votre téléphone moulinera un temps, puis désactivera votre Wi-Fi vous empêchant complètement de le relancer ou de vous connecter à un autre réseau. Le bug persiste même si vous activez ou désactivez le mode avion ou que vous redémarrez votre mobile.

Ne vous amusez donc pas à en faire l’expérience si vous n’êtes pas prêt à débugger ensuite (on vous explique comment faire plus bas). A priori, la situation touche même les iPhone sur la dernière version d’iOS (14.4.6). Nous avons cependant testé sur la version bêta d’iOS 15 et notre téléphone nous indique « Impossible de se connecter au réseau » ce qui semble signifier qu’Apple est au courant du problème et ne devrait pas trop tarder à déployer un correctif pour les téléphones sous iOS 14.

Une vulnérabilité démodée

Mais pourquoi exactement cette drôle de suite de caractère fait-elle planter les téléphones d’Apple ? Il est fort probable que cela soit dû à une erreur d’interprétation du téléphone. Le signe «  %  » fait croire au téléphone que le nom du réseau Wi-Fi est une commande informatique à exécuter et non pas un bête nom de réseau Wi-Fi.

Ne vous connectez surtout pas à ce genre de réseau Wi-Fi // Source : Photo Corentin Béchade pour Numerama

Plus spécifiquement, dans le langage de programmation C, le signe pourcentage suivi d’une lettre agit comme un spécificateur de format (string format specifiers en langue anglaise). C’est-à-dire un élément de code qui indique en fait au compilateur — le programme qui transforme le code créé par des humains (code source) en code interprétable par une machine (code objet) — qu’il faut exécuter une commande (ici, écrire dans la mémoire du téléphone) au lieu de rejoindre simplement le réseau Wi-Fi.

Quand l’iPhone tente donc d’interpréter le code présent au sein du SSID, alors le Wi-Fi plante. Ce type d’attaque porte le nom « d’exploits type format strings », ou « Format String Vulnerabilities » en anglais, et a connu ses heures de gloire il y a des décennies de ça, au début des années 2000.

Le chercheur en sécurité qui a découvert le bug ne s’en cache pas d’ailleurs, puisqu’il a indiqué au site BleepingComputer que tous ses appareils étaient nommés de cette manière afin de « pourrir les appareils développés avec les pieds ». Apple appréciera.

Comment récupérer son Wi-Fi ?

Avouons-le, il y a peu de chance pour que vous rencontriez ce bug de façon impromptue. Il faut déjà un peu de connaissance pour changer le nom de son réseau Wi-Fi et en face, il faudrait qu’un ou une propriétaire d’iPhone veuille se connecter à ce Wi-Fi étrange. Mais pour peu que quelqu’un offre un Wi-Fi ouvert avec ce nom dans un espace public, il y a moyen de gentiment casser quelque iPhone.

La seule manière de récupérer sa connexion Wi-Fi après un tel bug est de se rendre dans Réglages puis Général, Réinitialiser, puis Réinitialiser les réglages réseau. Votre iPhone redémarrera alors et le Wi-Fi sera de nouveau fonctionnel. Vous aurez par contre perdu tous les mots de passe Wi-Fi enregistrés dans le téléphone, soyez donc prudent.

Partager sur les réseaux sociaux

La suite en vidéo