This vulnerability occurs when an Android app's Broadcast Receiver accepts an Intent without confirming it originated from a trusted, authorized source, such as the operating system.
Android allows apps to register Broadcast Receivers for specific system-generated Intents, like a device boot completion. These are implicit intents that, by design, should only be sent by the OS. However, the same receiver registration also accepts explicit intents, which can be crafted and sent by any app on the device. A malicious app can exploit this by sending a carefully crafted explicit intent to the receiver. If the receiving app fails to verify the intent's source, it may incorrectly process the malicious intent as a legitimate system broadcast. This confusion can trigger unauthorized actions, expose sensitive data, or crash the application.
Impact: Gain Privileges or Assume Identity
Another application can impersonate the operating system and cause the software to perform an unintended action.
xml
...*
xml
xml...* IntentFilter filter = new IntentFilter(Intent.ACTION_SHUTDOWN); BroadcastReceiver sReceiver = new ShutDownReceiver(); registerReceiver(sReceiver, filter);
java
java