Common Weakness Enumeration

A Community-Developed List of Software Weakness Types

CWE/SANS Top 25 Most Dangerous Software Errors
Home > CWE List > CWE- Individual Dictionary Definition (3.0)  

CWE-925: Improper Verification of Intent by Broadcast Receiver

Weakness ID: 925
Abstraction: Variant
Structure: Simple
Status: Incomplete
Presentation Filter:
+ Description
The Android application uses a Broadcast Receiver that receives an Intent but does not properly verify that the Intent came from an authorized source.
+ Extended Description
Certain types of Intents, identified by action string, can only be broadcast by the operating system itself, not by third-party applications. However, when an application registers to receive these implicit system intents, it is also registered to receive any explicit intents. While a malicious application cannot send an implicit system intent, it can send an explicit intent to the target application, which may assume that any received intent is a valid implicit system intent and not an explicit intent from another application. This may lead to unintended behavior.
+ Alternate Terms
Intent Spoofing
+ Relationships

The table(s) below shows the weaknesses and high level categories that are related to this weakness. These relationships are defined as ChildOf, ParentOf, MemberOf and give insight to similar items that may exist at higher and lower levels of abstraction. In addition, relationships such as PeerOf and CanAlsoBe are defined to show similar weaknesses that the user may want to explore.

+ Relevant to the view "Research Concepts" (CWE-1000)
+ Relevant to the view "Development Concepts" (CWE-699)
+ Modes Of Introduction

The different Modes of Introduction provide information about how and when this weakness may be introduced. The Phase identifies a point in the software life cycle at which introduction may occur, while the Note provides a typical scenario related to introduction during the given phase.

Architecture and Design
+ Applicable Platforms
The listings below show possible areas for which the given weakness could appear. These may be for specific named Languages, Operating Systems, Architectures, Paradigms, Technologies, or a class of such platforms. The platform is listed along with how frequently the given weakness appears for that instance.


Class: Language-Independent (Undetermined Prevalence)


Mobile (Undetermined Prevalence)

+ Common Consequences

The table below specifies different individual consequences associated with the weakness. The Scope identifies the application security area that is violated, while the Impact describes the negative technical impact that arises if an adversary succeeds in exploiting this weakness. The Likelihood provides information about how likely the specific consequence is expected to be seen relative to the other consequences in the list. For example, there may be high likelihood that a weakness will be exploited to achieve a certain impact, but a low likelihood that it will be exploited to achieve a different impact.


Technical Impact: Gain Privileges or Assume Identity

Another application can impersonate the operating system and cause the software to perform an unintended action.
+ Demonstrative Examples

Example 1

The following example demonstrates the weakness.

(bad code)
Example Language: XML 
<manifest package="com.example.vulnerableApplication">
<receiver android:name=".ShutdownReceiver">
<action android:name="android.intent.action.ACTION_SHUTDOWN" />





The ShutdownReceiver class will handle the intent:

(bad code)
Example Language: Java 
IntentFilter filter = new IntentFilter(Intent.ACTION_SHUTDOWN);
BroadcastReceiver sReceiver = new ShutDownReceiver();
registerReceiver(sReceiver, filter);

public class ShutdownReceiver extends BroadcastReceiver {
public void onReceive(final Context context, final Intent intent) {



Because the method does not confirm that the intent action is the expected system intent, any received intent will trigger the shutdown procedure, as shown here:

(attack code)
Example Language: Java 
window.location = examplescheme://method?parameter=value

An attacker can use this behavior to cause a denial of service.

+ Potential Mitigations

Phase: Architecture and Design

Before acting on the Intent, check the Intent Action to make sure it matches the expected System action.
+ Notes


This entry will be made more comprehensive in later CWE versions.
+ References
[REF-922] Erika Chin, Adrienne Porter Felt, Kate Greenwood and David Wagner. "Analyzing Inter-Application Communication in Android". 3.2.1. <>.
+ Content History
Submission DateSubmitterOrganization
2013-06-24CWE Content TeamMITRE
Modification DateModifierOrganization
2014-02-18CWE Content TeamMITRE
updated Alternate_Terms, Demonstrative_Examples, Description, References
2017-11-08CWE Content TeamMITRE
updated Demonstrative_Examples

More information is available — Please select a different filter.
Page Last Updated: January 18, 2018