Bug desactiva por completo el WiFi en iOS al escanear redes cercanas específicas

Hace unos días, el investigador Carl Schou anunció —a través de Twitter—, el descubrimiento de un bug bastante curioso, donde al cambiar el nombre de nuestra red WiFi a %p%s%s%s%s%n y buscarla con un iPhone o iPad, éste perderá toda conectividad inalámbrica, y será necesario restablecer los ajustes de red, ya que ni reiniciando el dispositivo lograremos devolver todo a su estado original. En pocas palabras, un fallo está desactivando el WiFi en iOS.

Pues bien, el mismo investigador, luego de realizar unas cuantas pruebas más, encontró que esta falla es más compleja de lo esperado, al punto en el que no es necesario buscar manualmente las redes WiFi para que los iPhone o iPad pierdan por completo la conectividad. De esta forma, solo basta que tengamos cerca una red pública con un nombre como %secretclub%power para que el “ataque” surta efecto.

Aunque, para complicar más las cosas, algunos dispositivos afectados requieren un restablecimiento de fábrica para recuperar la conectividad, en lugar de solo eliminar los ajustes de red.

¿A qué se debe este problema con el WiFi en iOS?

Al parecer, todo apunta a que tanto %p%s%s%s%s%n como %secretclub%power son dos nombres que podrían estar provocando conflictos internos en iOS debido a la forma en la que son manejadas las redes WiFi tras bambalinas.

Logo de Wi-FI sobre dispositivo iOS

Carlos Oliva, desarrollador de iOS, nos explica que al momento en el que nuestros dispositivos escanean las redes disponibles y detectan estos nombres, en lugar de “procesar” el SSID de la red como lo que es, estaría interpretando estos datos como reglas de sustitución.

Para dejarlo un poco más claro, las reglas de sustitución como %[carácter], son usadas en una gran cantidad de lenguajes de programación —como C o Python—, para definir un formato específico que permitirá introducir o presentar datos.

Esta sintaxis, como se puede observar, se usa al principio del nombre de la red WiFi en cuestión.

# This prints out: A list: [1, 2, 3]
mylist = [1,2,3]
print("A list: %s" % mylist)

# En la línea de arriba, se puede apreciar 
# la regla de sustitución %s como parte de un programa 

iOS, al escanear las redes y gestionarlas internamente, estaría interpretando directamente esa sintaxis como una regla de sustitución que no tiene lugar, causando que el proceso encargado de controlar la conectividad inalámbrica falle. No obstante, lo último es más bien una hipótesis, ya que no hay forma de corroborarlo por cuenta propia.

En otras palabras, mientras que iOS está esperando un nombre común y corriente, se estarían introduciendo parámetros a los que no se les puede dar respuesta, corrompiendo todo y dejándonos sin WiFi.

¿Se puede mitigar esta situación?

Al parecer, no.

Carl Schou, el investigador que descubrió este interesante bug, afirma haberse puesto en contacto desde mediados de junio con el equipo de Apple para hacerles saber del problema, sin haber recibido respuesta alguna.

Lamentablemente, no parece haber una solución práctica a este incidente, más que desactivar el WiFi en la vía pública y deshabilitar la detección automática de redes, por si hay algún travieso jugando con este bug, de manera que no resultemos afectados en lo que tenemos noticias por parte de Apple.

detección de redes Wifi iOS

Aunque, —entrado directamente en el terreno de la especulación—, no sería extraño que la compañía de la manzana mordida lance una actualización para mitigar el incidente en las próximas semanas. Sin embargo, se desconoce el alcance del problema, así que es posible que algunos dispositivos descontinuados sigan siendo vulnerables luego de eso.

Por último, desde Pisapapeles recomendamos tener un respaldo vigente de estos dispositivos, en caso de que resultemos afectados, para no sufrir pérdidas de información y tener que comenzar todo desde cero.

Más noticias
La nueva Batería MagSafe también es capaz de cargar los AirPods de manera inalámbrica