特定の文字列を含むメッセージを受信すると、iPhoneがクラッシュする可能性のある不具合が発覚しました。
複数の海外メディアは、英語やアラビア語などを組み合わせたある“特定の文字列”を受信したところ、iPhoneがクラッシュし強制的に再起動されると伝えています。
本当にクラッシュするのか、具体的にどのような現象が発生するのか、筆者のiPhone 5s(iOS 8.3)で実際に試してみました。
「effective〜」から始まる特定の文字列を、自分のメールアドレス宛に送信します。iPhoneのメッセージアプリで受信すると直後にクラッシュ。再起動したときと同じく、白い背景に黒のアップルロゴが表示されたのち、ロック画面に復帰しました。
画面が戻ったのでメッセージアプリを開こうとすると、今度はアプリ画面が真っ白になりフリーズ。ホームボタンを押せばホーム画面に戻れますが、メッセージアプリが使えなくなりました。
実際にiPhoneがクラッシュする様子は、海外メディア「iClarified」が動画で公開しています。筆者のiPhoneでもほぼ同じ挙動を確認しました。
しかしこの不具合が起きたからといって、ずっとメッセージアプリが使えなくなるわけではありませんでした。アプリがクラッシュしたあと、ホームボタンをダブルクリックしてマルチタスク画面を表示し、メッセージアプリを強制終了。再度メッセージアプリを開き10秒ほど待つと、アプリは無事復帰しました。
何回か試してみたところ、メッセージアプリの会話ビューを表示した状態で例の文字列を受信すれば、クラッシュは起きませんでした。また強制再起動後、メッセージアプリを会話ビューで開いたときも、メッセージアプリはフリーズしませんでした。
この不具合はアプリの状態だけでなく、端末やiOSのバージョンによっても引き起こされる条件が違うようです。すべてのiPhoneユーザーに当てはまるわけではありませんが、むやみに試すのはやめたほうがよさそうです。
海外の報道によると、バグの原因は通知バナー回りのシステムが関連しているとのこと。通知バナーの表示設定を変更すれば、仮に例の文字列を受信しても被害を防ぐことができます。
まず「設定」から「通知」を開き、「メッセージ」をタップ。次に「ロック画面に表示」項目をオフにし、「ロックされていないときの通知のスタイル」を「バナー」以外に設定します。
筆者が上記の設定に変更し再度試したところ、確かにアプリのクラッシュや強制再起動は起きませんでした。最近は無料通話・メールアプリも多いので、メッセージアプリをそれほど使わない人は、上記の方法で通知をオフにしてしまってもいいかもしれません。
今回使用したテキストメッセージは、普段の会話ではほぼありえない特定のユニコード文字列を含むので、そのつもりがなかったのに相手のiPhoneをクラッシュさせてしまった!という事態は起こらないでしょう。
またアップルはこの問題を認識しており、今後ソフトウェアアップデートで修正すると説明しています。しかしこの文字列が悪用される可能性はあるので、対処方法を覚えておいてもいいかもしれません。
Copyright © ITmedia, Inc. All Rights Reserved.