現在パッチが適用されている iMessage のバグの詳細が Google Project Zero 研究者によって明らかになりました。この問題により、ユーザーは不正なメッセージを受信した場合、iPhone を再度動作させるためにワイプして復元する必要があった可能性があります。
発売元Google プロジェクト ゼロ検索会社のバグおよび脆弱性発見チームによると、この問題は被害者のデバイスに送信される特定の種類の不正なメッセージに関連しています。通常の公開ルールに従って、このバグは 90 日が経過するか、パッチが広く一般に利用可能になるまで公開されず、Apple が iOS 12.3 アップデートでリリースしたことでバグが修正され、公開が可能になりました。
具体的には、メッセージには、期待されているにもかかわらず、文字列ではないキー値を持つプロパティが含まれています。 IMBalloonPluginDataSource _summaryText という名前のメソッドを呼び出すと、このメソッドは問題のキーが文字列であると想定しますが、実際であるかどうかは検証しません。
後続の IMBalloonPluginDataSource replaceHandlewithContactNameInString の呼び出しでは、想定される文字列の im_handleIdentifiers が呼び出され、その結果、例外がスローされます。
このメッセージは Mac と iPhone の両方に影響を与える可能性がありますが、その影響の方法はそれぞれ異なります。 macOS の場合、このエラーにより「soagent」がクラッシュして再起動され、最悪の場合、メッセージ アプリが動作しなくなるという比較的短い問題になります。
iPhone では、コードは Springboard にあり、ロード、クラッシュ、リロードを繰り返し、UI が表示できなくなり、iPhone がユーザーの入力に応答しなくなります。この問題はハードリセット後も存続し、iPhoneのロックを解除した後に再び発生し始めるため、既知の唯一の解決策はリカバリモードで再起動してデバイスを復元することです。
情報開示の一環として、Google Project Zero は問題を再現するための手順も公開しました。
AppleInsiderでは、可能な限り iPhone を最新の状態に保ち、デバイスと保存データのバックアップを保持することをユーザーに推奨しています。
不正なメッセージは、これまで iMessage ユーザーにとっていくつかの問題の原因となっていました。代表的な例としては、「ブラックドット「2018 年に発生した Unicode のバグ。目に見えない文字を悪用して、iOS 11.3 を実行している iPhone および iPad でアプリをクラッシュさせました。
もうひとつの2018年」テキストボム「OpenGraph ページ タイトルの最適化されていないレンダリング プロセスを悪用して過度に長いタグを作成し、再びクラッシュを引き起こしました。2015 年の別のバージョンでは、単一行のアラビア文字レンダリング時に iOS リソースを消費しますが、通知として表示された場合に限ります。