iOS 11.4.1で特定の文字列を入力するとクラッシュする問題を解消

Appleが月曜日にリリースしたiOS 11.4.1のアップデートは、施錠されたiPhoneにアクセスすることを法執行機関が困難にしたことが大きなアップデート内容となっています。

このiOS11.4.1のアップデート内容について、セキュリティ研究者のパトリック・ウォードル氏は別のFixの内容を明らかにしました。

彼は、Appleが中国政府に対してあらかじめバックグラウンドで動作させているコードに対する修正を行なったと述べています。

これは、ユーザーが台湾語を入力したとき、または台湾の旗の絵文字を含むメッセージを受け取ったときに特定のiDデバイスでクラッシュするコードです。

台湾という言葉を入力するか、台湾の国旗(🇹🇼)が付いたメッセージを受け取り、彼女が(完全にパッチを当てた)iOSデバイスにアプリケーションをクラッシュさせると主張した。

「その影響はサービス拒否(NULL-pointer dereference)に限定されていましたが、iOSコードを分析する興味深いケーススタディを作成しました」と国家安全保障局の元ハッカーであるWardleがブログ記事に書いています。

「もしAppleが最初に中国政府に対してあらかじめ用意していたのだとしたら、バグではないだろう!」

Digital SecurityのMacOSとiOSのセキュリティ専門家であるWardle氏は、台湾語を入力するたびに、または台湾の旗がついたメッセージを受け取るたびに、iPhoneがクラッシュしたと最初に報告したときに困惑したと語った。

iMessage、Facebook Messenger、WhatsAppなどのリモートメッセージを処理したiOSアプリケーションをクラッシュさせたリモートでトリガ可能なバグを再現するのは問題ありませんでした。

しかし、Wardleは、特定の地域固有の構成を持つデバイスのみが影響を受けることを発見しました。

iPhoneがクラッシュする原因

iPhoneの悪名高い閉鎖性が、このバグの分析を困難にしていました。

逆参照されたヌルポインタとその原因となった誤った命令を格納していたメモリ位置を分離することでクラッシュを引き置きします。

WardleはiPhoneの復元イメージを利用して、コードライブラリの一部を取得しました。

最終的に、クラッシュが含まれている絵文字に基づいてメッセージを分類するコードによってクラッシュが発生していることを発見しました。

また、iOSに中国を含む国コードや中国語を含む言語設定(彼の友人の電話はその地域を米国とし、英語を英語、その後に中国語を指定した)があったときにエラーが発生したのを確認しました。

この発見により、最終的には簡単な修正が行われました。

台湾の旗の絵文字を受け取ったときはいつでも、「台湾」と入力することができない2年以上のうちに、あるいは電話が台湾の旗の絵文字を受け取ったときにはいつでも、クラッシュしています。

このバグは特定の「リージョンレス」構成のiOSデバイスにのみ影響します。

このバグは、iOS 11.4.1でCVE-2018-4290として修正されています。

これは、このバグがリモートでトリガ可能で(影響を受けたデバイスで)、リモートメッセージ(iMessage、Facebook Messenger、WhatsAppなど)を処理しているiOSアプリケーションをクラッシュさせると言われています。

以下の構成のiPhoneでクラッシュを確認

クラッシュするデバイスはiOS 11.3(当時の最新バージョンのiOS)を実行しているiPhone 7でした。

デバイス:iPhone 7、iPhone9,1(米国)
iOS:11.3(15E216)
言語:英語、中国語
地域:アメリカ合衆国
Jailbroken:いいえ
以下は、iMessenger(MobileSMS)のまとめたクラッシュレポートです。

それはデバイスから削除されました(設定 - >プライバシー、アナリティクス、アナリティクスデータ)。

このようなクラッシュは、通常、NULLポインタの逆参照を示します。

ここでは、iOSが何らかのタイプの絵文字処理を実行しているときに障害が発生したように見えます(これは、iMessengerが台湾の旗を受け取るトリガーに適しています)。

iOSクラッシュレポートのその他の関連情報は次のとおりです。

フォールト中の命令のアドレス(0x0000000182922efc)
クラッシュに先行するスレッド(#6)の呼び出しスタック
関連するdylib(すなわち、コールスタック内のもの)

まとめ

こうしたバグはなかなかレアなケースだと思いますが、iPhoneやAndroidなどバグは多く含まれています。

なるべく、最新のバージョンにしてiPhoneを使うようにしましょう。

Source:arstechnica

おすすめの記事