• Veille
Publié le 2 juillet 2021

Ce bug iOS qui bloque totalement la fonctionnalité Wi-Fi de vos appareils

Un bug d’autant plus agaçant qu’il pourrait impacter de nombreux appareils particulièrement dans le cas de points d’accès publics.

C’est le chercheur en sécurité Carl Schou qui découvrit le bug et alerta la communauté. Il indiqua sur Twitter qu’après s’être connecté à son point d’accès ayant le SSID « %p%s%s%s%s%n », l’iPhone désactiva subitement sa fonctionnalité Wi-Fi et que malgré les tentatives de redémarrage du téléphone et le changement du SSID, le Wi-Fi restait désactivé. Le bug a également été confirmé par d’autres utilisateurs.

Selon 9to5Mac, le bug affecterait également les iPads, ainsi que des services comme AirDrop. Étrangement, ce bug n’impacte pas les appareils Android et serait donc seulement un bug propre aux appareils iOS.

D’après nos recherches, ce bug proviendrait d’un formatage d’une chaine de caractère de la manière dont le nom du point d’accès est analysé par l’iPhone. C’est-à-dire que l’iPhone va considérer les caractères suivant le signe de pourcentage comme un spécificateur de format de chaine, faisant référence à un nom de variable ou à une commande utilisée dans les langages programmation type C.

En effet, une chaine contenant potentiellement des spécificateurs de format type « % » (provenant du SSID) est transmise au [WFLogger WFLog:message :] qui effectue son propre formatage de la chaine.

Figure 1 : Morceau de code wifid responsable du bug
Figure 2 : Journal d'erreur

Le journal d’erreur ci-dessus nous indique que la cause principale de ce bug viendrait de ce morceau de code :

Figure 3 : Morceau de code à l'origine du bug

En effet, le code ci-dessus concatène le SSID dans une chaine de caractère et le transmet à la méthode WFLog : message :. La destination est 3 donc c’est la deuxième xref de CFStringCreateWithFormatAndArguments qui a déclenché le déni de service. Cependant, le reste des paramètres ne semble pas être contrôlable ce qui limite l’exploitation de ce bug à du simple déni de service.

Conclusion et correction du bug

Bien que le redémarrage de l’iPhone ne résolve pas le problème, ce bug n’est pas permanent et peut être corrigé sans réinitialiser l’ensemble de l’appareil. Le correctif est simple : il suffit de réinitialiser tous les paramètres réseau. Cela peut être réalisé en allant dans Réglages> Général> Réinitialiser> Réinitialiser les réglages réseau

Notez cependant que cette opération va réinitialiser tous les réglages liés au réseau Wi-Fi et aux configurations VPN de l’appareil. Cela signifie qu’après avoir réinitialisé les réglages, il faudra se reconnecter manuellement à tous les réseaux Wi-Fi en entrant le mot de passe correspondant.

Afin d’éviter tout désagrément de ce type et en tant que bonne pratique sécurité, il est recommandé d’éviter de se connecter aux points d’accès inconnus (publics ou non). Si l’obligation de connexion à un point d’accès Wi-Fi se fait ressentir, par exemple dans les cafés ou les hôtels, il est recommandé de passer par un VPN. Cependant, pour une sécurité optimale, il est conseillé de préférer le réseau cellulaire si vous êtes en déplacement, c’est-à-dire la 3G, 4G ou maintenant 5G.

Article rédigé par
EvaBssi Team