GhostMap:Androidの脆弱性により、悪意あるアプリが永続的なブートループを引き起こす

攻撃者は、細工したアプリを使うだけで、Android端末を連続的な再起動(ブートループ)状態に陥れることができます。このアプリは権限を一切必要とせず、インストールさえすれば機能します。

この永続的なサービス拒否(DoS)を引き起こすのが、研究者らが「GhostMap」と名付けた脆弱性です。Androidがファイルを未割り当てのメモリ領域にマッピングしてしまい、該当プロセスがその領域を読み込もうとするとクラッシュします。

ルーマニアのサイバーセキュリティ企業Bitdefenderは、あるAndroid向けバンキングトロイの木馬を解析していた際にこの欠陥を発見しました。このマルウェアがアプリケーションのリソースを読み込もうとすると、エミュレーターが繰り返しクラッシュしたといいます。

研究者らは、実行可能コードを一切含まず、インストール時に権限も要求せず、端末上で起動する必要すらないアプリを作成し、この脆弱性を実証しました。

同社によると、GoogleはGhostMapについて8月から把握していました。しかし、パッチを公開しないまま「再現不能」に分類し、問題をクローズしたということです。

端末を使用不能に

Bitdefenderは本日公開したレポートで、GhostMapの原因を次のように説明しています。2つのAndroidライブラリがZIPの圧縮方式を異なる形で解釈するため、不正な形式のAPK(Androidパッケージファイル)がサイズチェックをすり抜け、ファイルの実際の内容を超えた領域までマッピングされてしまうのです。

研究者らは「このようなエントリを読み込むと、そのファイルにアクセスしたプロセスでSIGBUS(無効なメモリ領域にアクセスしたプロセスを停止させるため、CPUが送信するシグナル)が発生する」と述べています。

クラッシュが繰り返される状況を実証するため、Bitdefenderは、インストール後にAndroidの中核サービス「system_server」が自動的に読み込もうとするリソースを含むアプリを作成しました。

この読み込みが脆弱性を引き起こしてプロセスが再起動し、同じリソースを再び読み込んでクラッシュします。これが無限に繰り返されます。

テストでは、2026年8月5日付のセキュリティパッチを適用したAndroid 17搭載のPixel 10を使用しました。アプリのインストールから約1秒後にクラッシュの連鎖が始まり、通常の起動モードでは110回、セーフモードでは72回繰り返されました。

Bitdefenderは、このブートループによってセーフモードにもアクセスできなくなると警告しています。セーフモードは本来、問題の切り分けや端末の復旧に使える手段です。

クラッシュを止める方法は2つあります。1つは、端末内に保存されたデータがすべて消去される初期化(ファクトリーリセット)です。もう1つは、ADB経由で不正な形式のファイルを削除する方法です。

ただし、ADBを使うには、端末のデバッグオプションが事前に有効になっている必要があります。さらに、ADBによる復旧は、システムがクラッシュする前にスクリプトを実行しなければなりません。

Googleの対応

BitdefenderはGoogleに対し、8月20日にこの問題を報告しましたが、対象外であるとして「修正しない(再現不能)」との回答を受けました。

研究者らは、Googleが元の報告を誤って分類したと考え、8月25日に詳細を加えた拡張版を提出しました。それでもGoogleは、セキュリティアップデートの対象外と判断しました。ただし、今後のアップデートで検討するために保留としています。

BleepingComputerはGhostMapの修正状況についてGoogleに問い合わせましたが、現時点で返答は得られていません。

Bitdefenderは、攻撃を阻止できる機会はインストール時のみだと指摘しています。サードパーティ製のセキュリティツールは、潜在的な脅威を検知して警告を表示できる可能性がありますが、インストールをブロックする権限は持っていないということです。

翻訳元: https://www.bleepingcomputer.com/news/security/ghostmap-android-flaw-lets-malicious-app-trigger-persistent-boot-loop/

本記事は bleepingcomputer.com の記事を翻訳・要約したものです。