

面白いバグがあります。セキュリティ研究者が、慎重に作成されたネットワーク名が iOS のネットワーク スタックにバグを引き起こし、iPhone の Wi-Fi 接続機能を完全に無効にできることを発見しました。
Twitter で、Carl Schou 氏は、特定の名前 (「%p%s%s%s%s%n」) の Wi-Fi ネットワークに参加した後、その時点から iPhone のすべての Wi-Fi 機能が無効になることを示しました。
iPhoneまたはiPadが「%p%s%s%s%s%n」という名前でネットワークに接続すると、Wi-Fiネットワークへの接続やAirDropなどのシステムネットワーク機能の使用ができなくなります。デバイスを再起動しても問題は解決しません(ただし、回避策は存在します。下記をご覧ください)。
Schuo 氏はこれをどうやって発見したかは詳しく述べていないが、どのプログラマーでも、このバグを引き起こすのに必要な奇妙なネットワーク名のパターンに気付くはずだ。
おそらく、次のような説明が考えられます。「%[文字]」構文は、プログラミング言語で変数を出力文字列にフォーマットするためによく使用されます。C言語では、「%n」指定子は、フォーマット文字列に書き込まれた文字数を、文字列フォーマット関数に渡される変数に保存することを意味します。Wi-Fiサブシステムは、おそらくWi-Fiネットワーク名(SSID)をサニタイズされていない状態で、文字列フォーマットを実行する内部ライブラリに渡し、その結果、任意のメモリ書き込みとバッファオーバーフローが発生します。これはメモリ破損につながり、iOSウォッチドッグによってプロセスが強制終了され、結果としてユーザーにとってWi-Fiが事実上無効になります。
言うまでもなく、これは非常に分かりにくい一連の出来事なので、誰かが偶然この罠に陥る可能性は極めて低いでしょう。ただし、Wi-Fiのいたずらをする人々が突然現れ、ポイズニングされた名前を使ったオープンWi-Fiネットワークを開設するような事態になれば話は別です。Appleが今後のOSアップデートでこのエッジケースを修正するまでは、ネットワーク名にパーセント記号が含まれているWi-Fiネットワークには注意が必要です。
ただし、何らかの形でこの影響を受けたとしても、このバグによってハードウェアが永久的に損傷を受けることはないようです。
すべてのネットワーク設定をリセットして、最初からやり直せるはずです。設定アプリで、「一般」→「リセット」→「ネットワーク設定をリセット」と進んでください。これでiPhoneに保存されているすべてのWi-Fiネットワーク(モバイルデータ通信の設定やVPNアクセスなど)がリセットされ、悪意のあるネットワーク名に関する情報がメモリから削除されます。これで、通常の自宅Wi-Fiに再び接続できるようになります。
SSID「%p%s%s%s%s%n」で個人用Wi-Fiに接続した後、iPhoneのWi-Fi機能が永久に無効になってしまいました。再起動もSSID変更も直りません :~) pic.twitter.com/2eue90JFu3
— vmcall (@vm_call) 2021年6月18日
havebin.com を Google ニュース フィードに追加します。
FTC: 収益を生み出す自動アフィリエイトリンクを使用しています。詳細はこちら。
