特定のWiFiホットスポットに接続するだけで、iPhoneのワイヤレス機能が停止するという新しいiPhoneのバグが明らかになりました。
このバグが発生すると、iPhoneを再起動したり、WiFiの名前を変更したりしても、WiFi接続ができなくなります。
このバグは、人が集まる場所に不正なWiFiホットスポットを設置し、そこに接続するiPhoneデバイスを攻撃する悪意のある攻撃者によって悪用される可能性があります。
リバースエンジニアのCarl Schouは、個人的なWiFiホットスポットに接続する際にこのバグを発見しました
%p%s%s%s%s%n
というホットスポットに接続すると、iPhoneのWiFiが無効になり、デバイスを再起動したりホットスポット名を変更したりしても、すぐに電源が切れてしまいます。
「SSID「%p%s%s%s%n」というWifiに接続した後、iPhoneのWiFi機能が永久に使用できなくなりました。再起動してもSSIDを変更しても直りません」とSchou氏はツイートしています。
Schou氏は、iOSバージョン14.4.2を搭載したiPhone XSでの実験が成功したと述べています。
iPhoneの壊れたWi-Fi機能を修正する唯一の方法は、デバイスのiPhoneネットワーク設定をリセットすることで修復することができます。
iPhoneの「設定」を開き、「一般」を選択し、「リセット」を選択します。
リセット画面が表示され、iOSまたはデバイス自体の機能をリセットすることができます。
ユーザーによると、この問題はiPhoneに特有のもので、Android端末では再現できないようです。
文字列フォーマットの脆弱性の可能性
Schouのツイートを見て、クラッシュレポートを分析した他のセキュリティ研究者は、入力解析の問題がこのバグの原因である可能性が高いと考えています。
WiFiホットスポット名に「%」記号を含む文字列が存在する場合、iOSは、「%」に続く文字を文字列フォーマット指定子ではないと誤って解釈している可能性があります。
C および C スタイルの言語では、文字列形式指定子は特別な意味を持ち、言語コンパイラによって単なるテキストではなく、変数名やコマンドとして処理されます。
例えば、次のprintfコマンドは、実際には”%n “文字を表示しませんが、%nの前の文字数(10)を変数 “c “に格納します。
n “は単なる書式指定であり、実際のテキスト文字列ではありません。そのため、次の行の出力は、単に「geeks for geeks」となり、”%n “の記述はありません。
Comments