バンキングマルウェアの検体から発見、Androidをクラッシュループに陥れるバグ

Bitdefender Labsの研究者は、実行可能コードを一切含まず、権限も要求しないAndroidアプリを作成しました。このアプリをインストールすると、Pixel 10がクラッシュループに陥り、復旧には初期化が必要になる場合があります。Bitdefenderが「GhostMap」と名付けたこの欠陥は、AndroidがAPK内部のZIP構造を読み取る際の処理に起因します。

Image

アプリを起動する必要はありません。研究チームは、2026年8月5日のセキュリティパッチを適用したAndroid 17搭載のPixel 10で、このループを再現しました。初期化を行うと、端末に保存されたデータは消去されます。Bitdefenderは、この手法が実際に悪用されている事例は確認していません。

Bitdefenderによると、Googleはセキュリティアップデートを予定していません。8月20日に送った最初の報告は「修正しない(再現不可)」としてクローズされました。8月25日には動作する概念実証(PoC)を添えて再度連絡しましたが、Googleは、この問題はセキュリティ修正の対象外だと回答しました。そのうえで、将来のバージョンに含めるかどうかを検討するため、担当チームに引き継いだとしています。

きっかけはバンキング型ドロッパー

8月12日、実環境から収集したバンキング型ドロッパーが、インストール中にBitdefenderの解析用エミュレーターをクラッシュさせました。この検体はパッカーで保護されていました。パッカーとは、APKの内部構造を書き換えてリバースエンジニアリングツールを寄せ付けないようにするツールです。この書き換えが、Androidのインストーラーまで壊していました。

2つのライブラリに残された隙

ZIPファイルの各エントリーは、圧縮方式と展開後のサイズを宣言しています。Androidが対応する圧縮方式は、無圧縮(stored)とDeflate圧縮の2種類です。ところが、このフィールドは16ビット幅であるため、ファイルはまったく別の値を宣言することもできます。Androidのあるライブラリは、宣言されたサイズを無圧縮のエントリーに対してしか検証しません。別のライブラリは、Deflate以外をすべて無圧縮として扱い、宣言されたサイズでファイルをメモリーにマップします。第3の方式の値を持つエントリーは、この両方の検査をすり抜けます。

カーネルは、ファイルより大きなマッピングを許可します。Bitdefenderが取得したキャプチャでは、8,408バイトのAPKが約16MBにわたってマップされていました。ファイルの実際の末尾を越えて最初に読み取った時点でSIGBUSが発生し、読み取りを行っていたプロセスが強制終了されます。SIGBUSとは、CPUが検出するフォールトの一種です。

どのプロセスが落ちるかは、壊れているファイルによって決まります。マニフェストが不正ならインストーラーがクラッシュします。一方、Androidの中核機能の多くを担うsystem_serverが読み込むリソースが不正な場合は、再起動のたびに同じファイルを読み直すため、そのたびにクラッシュします。あるキャプチャでは、ブートアニメーションが表示されたまま110回ものサイクルを繰り返しており、セーフモードでも同じループに陥ります。

これまでの研究との違い

Zimperiumによる不正なAPKの先行研究とどう違うのか。Bitdefenderのセキュリティアナリスト、Silviu Stahie氏は次のように説明しています。「Zimperiumの研究では、不正なAPKは解析ツールをクラッシュさせ、逆コンパイルを阻むだけで、端末上では問題なく動作しました。今回は、このパーサーの食い違いをさらに突いて、呼び出し元プロセスで境界外読み取り(OOB)とSIGBUSを引き起こす方法を見つけました。場合によっては、そのプロセスがAndroidのシステムプロセス自体になります」

影響範囲について、Stahie氏は次のように述べています。「はい、このバグはAOSPに存在します。私たちはAndroid 10から最新版まで検証しました。ベースのAndroidに存在する問題なので、他社製のスマートフォンでは検証していません」

最大の未解決の疑問は、細工されたアプリがアプリストアの審査をすり抜け、後からアップデートを通じてスマートフォンに紛れ込めるのかという点です。Bitdefenderはその可能性に言及しつつも、現実的かどうかの判断までは踏み込んでいません。

「この点については、研究内で詳しく述べない正当な理由があります。未修正の脆弱性について審査の仕組みを回避する詳細を明かすと、悪用の証拠とみなされる可能性があります(EU指令2013/40/EU)」と、Stahie氏はHelp Net Securityに語りました。研究では、Google Playの審査がこのようなファイルを検出できるかどうかには触れていません。

このバグにはCVEが割り当てられていません。Stahie氏は次のように述べています。「Googleが脆弱性プログラムでこのバグを受理していれば、CVEが付与されていたはずです。10月末に、11月5日に研究を公開する予定だと伝え、Googleも了承しました」

翻訳元: https://www.helpnetsecurity.com/2026/11/05/ghostmap-android-bug-research/

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