ソフトウェア

たった1行のコードがiPhoneを壊してしまう


iOSの「通知」に関連する開発者向けAPI「Darwin Notification API」に脆弱(ぜいじゃく)性があり、たった1行のコードを悪用することでデバイスを強制的に再起動させられることが明らかになりました。

How a Single Line Of Code Could Brick Your iPhone | Rambo Codes
https://rambo.codes/posts/2025-04-24-how-a-single-line-of-code-could-brick-your-iphone

Darwin Notification APIは特定のプロセス間でデータをやりとりするためのAPIです。開発者のギルヘルメ・ランボー氏によると、Darwin Notification APIを通じて転送されるデータ量は非常に限られているため、これ自身は機密データ漏えいのリスクとはならないそうですが、送受信に特別な権限を必要とせず、パブリックAPIとして利用可能で、送信者を確認するメカニズムがないことから、悪用される可能性があるとのことです。

ランボー氏がDarwin Notification APIを悪用したサービス拒否(DoS)攻撃が行われる余地があるとして調査したところ、デバイスに接続したコンピューターからトリガーされる通知に偽装するような通知を勝手に行うという動作を実現できたとのこと。


ランボー氏はテストアプリを作成し、「液体検出」や「DisplayPort接続」といった通知を偽装すること、ジェスチャーをブロックしたり強制的に再起動させたりすることが可能なことを実証しました。


強制的に再起動させるという動作は、端末に「復元中」という通知を表示するという処理で実現します。偽装して復元中と表示すると、デバイスは実際には復元されていないため処理がタイムアウトし、デバイスを再起動しなければならなくなります。なお、復元中と表示するコードは以下のたった1行のコードで構成されていました。


notify_post(「com.apple.MobileSync.BackupAgent.RestoreStarted」)


iOSアプリはバックグラウンドで処理する機会が非常に限られており、アプリがフォアグラウンドにないときは副作用のあるAPIの多くが動作しないようになっていますが、サードパーティーのアプリ拡張機能の種類によっては、iOSデバイスの最初のロックが解除される前に実行されることがあります。

アプリにウィジェットが含まれている場合、システムはアプリの起動後にウィジェットを実行するのですが、この仕様を利用してランボー氏はテストアプリにウィジェットを追加してウィジェットに前述のコードを実装しました。この状態でテストアプリを起動すると「復元中」と表示され、システムを再起動するという通知が表示された後に、端末の再起動が促されます。再起動するとすぐに拡張機能がシステムによって起動され、さらに再起動を求めるというループ状態に陥るそうです。


ランボー氏はこの脆弱性をAppleに報告し、約半年で脆弱性は修正されたそうです。Appleのセキュリティ報酬プログラムにより、ランボー氏は1万7500ドル(約250万円)の報奨金を受け取ることになったといいます。この問題にはCVE-2025-24091が割り当てられ、通知周りのシステムは「機密性の高い通知には権限が必要になる」と変更されました。

この記事のタイトルとURLをコピーする

・関連記事
AppleのアシスタントAI「Apple Intelligence」に使われるAI処理サーバー「Private Cloud Compute」の安全性への取り組みをAppleが説明 - GIGAZINE

AppleがiPhone 15 Proの異常発熱問題はハードウェアではなくソフトウェアが原因と説明、改善のためのソフトウェアアップデートの配信も約束 - GIGAZINE

iPhoneの一部が勝手にSiriとの会話を録音していたバグが判明、iOS 15.4 beta 2で修正 - GIGAZINE

Appleに報告したゼロデイ脆弱性がサイレント修正される事態をセキュリティ研究者が報告 - GIGAZINE

in ソフトウェア, Posted by log1p_kr

You can read the machine translated English article One line of code can break your iPhone….