米国セキュリティ企業のZecOpsは20日(現地時間)、iOS標準のメール機能に、ユーザーがクリックせずともリモートでコードが実行されてしまう深刻な脆弱性が存在し、ゼロディ攻撃に使われた形跡があったため、注意を促した。

同社は定期的にiOSのセキュリティについて調査を行なっているが、北米フォーチュン500企業の個人、日本のキャリアの幹部、ドイツのVIP、サウジアラビアとイスラエルのMSSP、ヨーロッパのジャーナリスト、スイス企業の幹部といった人物をターゲットに、この脆弱性に対する複数のトリガーを長期的にわたって検出できたという。

この攻撃は、特別に細工されたメールを送信し、iOS 12のiOS MobileMailアプリケーションや、iOS 13のMaildのコンテキストで脆弱性をトリガーするようになっている。iOS 6以降のすべてのバージョンのiOSで脆弱性が存在する可能性があり、最新のiOS 13.4.1にも存在する。

具体的には、iOSにおけるMIMEライブラリの「MFMutableData」における関数-[MFMutableData appendBytes:length:]の実装手法に問題があり、システムコールftruncate()のエラーチェックが欠けているため、境界外書き込みにつながるという。

また、ZecOpsではこのftrucate()の失敗を待たずに、MFMutableDataで境界外書き込みをトリガーできることや、リモートでトリガーできるヒープオーバーフローの脆弱性も発見した。いずれのバグも、システムコールの戻り値を正しく処理していないことに起因するという。

リモートでトリガーできるバグに関しては、メールをダウンロードしている最中にも発生するため、メールがデバイスに完全にダウンロードされないとしている。

iOS 12で悪用された場合、メールアプリが一時的に速度低下し、成功/失敗に関わらず突然クラッシュしたりする。一方iOS 13では一時的に速度低下する以外は気づかれず、攻撃が失敗した場合別の攻撃が行なわれ、メールが削除されてしまえばユーザーは気づくことはないという。

iOS 13.4.5 betaではこの脆弱性が修正されていることがわかっており、配布まではOutlookやGmailといったほかのアプリケーションを利用することで回避できるとしている。

【4月24日追記】Appleによると、このバグはiPhoneおよびiPadのセキュリティを回避するのに十分ではなく、ユーザーに直接的なリスクを与えるものではないという。また、顧客に対して使用された形跡もない。まもなくアップデートで修正するとともに、セキュリティ研究者らの協力に感謝の意を述べた。