Comments 25
Что в названии сети существенно для воспроизведения?
• символ процента, но не шестнадцатиричное число за ним,
• символ процента, но только один символ после него до конца строки,
• шесть символов процента,
• именно такая комбинация,
• какая-то пара из символа процента и буквы за ним?
Эксперт ни малость не исследователь.
Кстати, пишут, что работает и наоборот: https://twitter.com/_mxms/status/1179531867772424194
Странно. Напрашивается передача ssid прямо в sprintf.
sprintf(buffer, ssid);
Первый же символ форматирования в ssid сломал бы стек сразу; это нельзя было бы не заметить.
Наверное, у Appple устроено более затейливо. Возможно, предусмотрительно экранируют подозрительные символы, но не все.
Да, скорее всего тупо regex паттерны, которые используются при фильтрации ssid, не покрывают этот случай. Проблема тестирования, всетаки юнит тесты надо обновлять и мутационный кросс чек никто не отменял... Сейчас обновят, к след. обновлению.
Стек сломает далеко не любой символ форматирования. Форматы, означающие непосредственные значения (%d, %f, %p итд) просто прочитают из стека «чужое» значение, ничего не испортив (кроме случая когда стек практически пуст/форматов много и чтение достаёт до отсутствующей памяти). А за удаление параметров отвечает вызывающий код, строка формата никак на это не влияет.
Напомню, что SSID по стандарту - вообще не строка. Потому, в принципе, если следовать стандарту, SSID требует очень особенной интерпретации.
В исходниках wpa_passphrase.c с ним обращаются как с обычной строкой.
pbkdf2_sha1(passphrase, ssid, strlen(ssid), 4096, psk, 32);
Я поздравляю автора этого кода, стандарт он не читал.
В Linux, значит, все так же плохо с поддержкой стандартов, как и в Apple.
А что не так со строкой? В ssid допустим 0х00?
WiFi у айфонов это кромешный кошмар, учитывая сколько стоят это все. Особенно забавен отказ от стандартизации wifi.
Раскажите подробнее, что там такое
Начиная от неподдерживаемого WPS и заканчивая кучей нюансов. В лучшем случае лечилось в своё время свежими прошивками, либо установками различных тонких настроек (дело было очень давно, и настройки в глубинах 802.11, куда лучше не лазить). Сейчас уже все смирились, но во времена становления вайфая это очень многих бесило. Выражалось в нестабильной работе тех точек, которые с другими ОС абсолютно стабильно работали. К сожалению, я не сетевик, и тем более не связан с беспроводными сетями, но баталии и плачи на профильных форумах были тогда знатные.
gsm они тоже не по стандарту реализовали
Добавьте в название системного диска в Mac OS знак "&" и после обновления системы вы получите кирпич. Уверен, баг существует и по сей день.
У Apple много странного.
Раньше похожим образом издевались над виндой, добавляя c:\con\con в адрес картинок на веб страничках.
К сожалению, это не единственная проблема с wifi в новой прошивке. 4pda изобилует репортами о том как wifi отваливается через пару минут блокировки телефона.
Эксперт обнаружил баг в работе Wi-Fi на iPhone