セキュリティ · 1 min read · Oct 25, 2025

不正なAndroidManifest.xmlはAndroidデバイスをクラッシュさせる可能性がある

目次

  • 不正なAndroidManifest.xmlはAndroidスマートフォンやタブレットをクラッシュさせる可能性がある
  • 脆弱性
  • セキュリティリスクではない

不正なAndroidManifest.xmlはAndroidスマートフォンやタブレットをクラッシュさせる可能性がある

Androidスマートフォンやタブレットが連続再起動ループに陥り、ユーザーにとってほぼ無用になることがあるのをご存知ですか?もしそうなら、最後にダウンロードしたAPKには不正なAndroidManifest.xmlファイルが含まれているに違いありません。

Trend Micro Labsの研究者たちは、不正なAndroidManifest.xmlファイルが任意のAndroidデバイスをクラッシュさせたり、連続再起動ループに陥らせたりすることを発見しました。

AndroidManifest.xmlは、任意のAndroidアプリまたはAPKの重要な構成要素です。AndroidManifest.xmlファイルは常にアプリのルートディレクトリに存在し、アプリに関する重要な情報をAndroidオペレーティングシステムに提供します。AndroidManifest.xmlがないと、Androidはアプリのコードを実行できません。

AndroidManifest.xmlは、アプリが実行されるために以下のことを行います。

  • アプリケーションのJavaパッケージ名を指定します。パッケージ名はアプリケーションの一意の識別子として機能します。

  • アプリケーションのコンポーネント(アクティビティ、サービス、ブロードキャストレシーバー、コンテンツプロバイダー)を説明します。各コンポーネントを実装するクラスを指定し、それらの機能(例えば、どのIntentメッセージを処理できるか)を公開します。これらの宣言により、Androidシステムはコンポーネントが何であり、どの条件で起動できるかを知ることができます。

  • アプリケーションコンポーネントをホストするプロセスを決定します。

  • アプリケーションがAPIの保護された部分にアクセスし、他のアプリケーションと相互作用するために必要な権限を宣言します。

  • アプリケーションのコンポーネントと相互作用するために他者が必要とする権限も宣言します。 アプリケーションが実行されている間にプロファイリングやその他の情報を提供するInstrumentationクラスをリストします。これらの宣言は、アプリケーションが開発およびテストされている間のみマニフェストに存在し、アプリケーションが公開される前に削除されます。

  • アプリケーションが必要とするAndroid APIの最小レベルを宣言します。

  • アプリケーションがリンクする必要のあるライブラリをリストします。

Trend Micro Labsの研究者たちは、任意のAndroidスマートフォンをクラッシュさせる可能性のある重大な脆弱性を発見しました。Trend Micro Blogは、「マニフェストファイルに関連する脆弱性が見つかり、影響を受けたデバイスが連続再起動のサイクルを経験する可能性があるため、デバイスがユーザーにとってほぼ無用になる」と述べています。

脆弱性

研究者たちは、この脆弱性がOSをクラッシュさせる2つの異なる方法があると述べています。最初の方法は、非常に長い文字列とメモリ割り当てに関係しています。一部のアプリは、文書型定義(DTD)技術を使用して、.XMLファイルに巨大な文字列を含む場合があります。この文字列参照がAndroidManifest.xmlのいくつかのタグ(例:権限名、ラベル、アクティビティ名)に割り当てられると、パッケージパーサーはこの.XMLファイルを解析するためにメモリを必要とします。

研究者たちは、パッケージパーサーが割り当てられたメモリよりも多くのメモリを必要とすると、クラッシュし、Androidシステムのランタイム環境で連鎖反応を引き起こすと述べています。連鎖反応は、すべての実行中のサービスを停止し、システムを再起動させます。

Trend Microの研究者によって説明された2番目の方法は、.APKファイルと特定のintent-filterに関係しています。これは、サービスまたはアクティビティが何をできるかを宣言します。マニフェストファイルにこの特定のintent-filterを持つアクティビティ定義が含まれている場合、ランチャーにアイコンが作成されます。

通常、このintent-filterで定義されたアクティビティの数は制限内であり、インストール後に同じ数のアイコンがホームページに作成されます。

不正なintent-filterの場合、より多くのアクティビティを定義でき、インストール後に同じ数のアイコンがホームページに作成されます。Trend Microの研究者たちは、この数が大きすぎると、.APKファイルが再起動のループを引き起こすと述べています。

特定のintent-filterの結果、定義されたアクティビティが10000を超える場合は、

  • Android OSバージョン4.4の場合、ランチャープロセスが再起動します。

  • バージョンLの場合、PackageParserがクラッシュし、再起動します。不正な.APKがインストールされますが、アイコンは表示されません。 アクティビティの数が100,000を超えると、デバイスは再起動のループに陥ります。

セキュリティリスクではない

上記の脆弱性は、誰かが特に不正なAndroidManifest.xmlをAPKに導入しない限り、セキュリティリスクと呼ぶことができます。しかし、サイバー犯罪者がそのような脆弱性を持つAPKを野外に公開した場合、Androidユーザーにとって大きな問題を引き起こす可能性があります。

そのような不正なxmlファイルがアプリを介してシステムに導入されると、デバイスはほぼ再起動ループに陥り、ユーザーは無力になります。

不正なAndroidManifest.xmlデバイスを救う唯一の方法は、Androidスマートフォンでデバッグブリッジ(ADB)を有効にすることです。Androidユーザーはスマートフォンをコンピュータに接続し、ファストブートモードで電話を起動し、ROMをフラッシュできます。

しかし、すべてのユーザーがそのようなシステムデバイスを使用する技術的な能力を持っているわけではなく、初心者がADBを使用するとデバイスが壊れる可能性があります。

連続再起動するスマートフォンに遭遇した場合は、カスタマーサービスまたは信頼できる修理店に連絡するべきです。

そのようなファイルがシステムに導入されるのを防ぐもう一つの方法は、検証済みでレビューされたアプリのみをダウンロードし、信頼できないウェブサイトで見つかったAPKを避けることです。

Trend Microはこの問題についてGoogleに通知しており、パッチが近日中にリリースされる可能性があります。

リソース:Trend Micro Labs。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。