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

ランボー氏はテストアプリを作成し、「液体検出」や「DisplayPort接続」といった通知を偽装すること、ジェスチャーをブロックしたり強制的に再起動させたりすることが可能なことを実証しました。
強制的に再起動させるという動作は、端末に「復元中」という通知を表示するという処理で実現します。偽装して復元中と表示すると、デバイスは実際には復元されていないため処理がタイムアウトし、デバイスを再起動しなければならなくなります。なお、復元中と表示するコードは以下のたった1行のコードで構成されていました。
notify_post(「com.apple.MobileSync.BackupAgent.RestoreStarted」)
iOSアプリはバックグラウンドで処理する機会が非常に限られており、アプリがフォアグラウンドにないときは副作用のあるAPIの多くが動作しないようになっていますが、サードパーティーのアプリ拡張機能の種類によっては、iOSデバイスの最初のロックが解除される前に実行されることがあります。
アプリにウィジェットが含まれている場合、システムはアプリの起動後にウィジェットを実行するのですが、この仕様を利用してランボー氏はテストアプリにウィジェットを追加してウィジェットに前述のコードを実装しました。この状態でテストアプリを起動すると「復元中」と表示され、システムを再起動するという通知が表示された後に、端末の再起動が促されます。再起動するとすぐに拡張機能がシステムによって起動され、さらに再起動を求めるというループ状態に陥るそうです。

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