Remediation for Intent Scheme Hijacking Vulnerability
This information is intended for developers with app(s) that contain the Intent Scheme Hijacking Vulnerability.
One or more of your apps contain have an Intent-Scheme Hijacking issue which can allow malicious networks and websites to access private app components.
Sign in to your Play Console to see which apps are affected and the deadlines to resolve these issues.
Update your affected apps using the steps highlighted below.
Submit the updated versions of your affected apps.
Your app will be reviewed again. This process can take several hours. If the app has not been updated correctly, you will still see a notice on your Play Console. If there is no notice on your Play Console then no further action is required.
Please review the detailed steps below to fix the issue with your apps. After the deadlines shown in your Play Console, updates to affected apps will be blocked if the vulnerability is still present. Your published APK version will remain unaffected.
WebViews that visit untrusted web content, parse intent:// links using Intent.parseUri, and send those Intents using startActivity are vulnerable to Intent-Scheme Hijacking. These WebViews can be tricked by malicious web content into sending arbitrary Intents to private app components. This can lead to app compromises such as the theft of private app data that such components manipulate. Note that untrusted web content includes content from trusted domains that is loaded over HTTP.
We recommend that you prevent this vulnerability in one of the following ways:
Option 1: Ensure that WebViews cannot send arbitrary Intents
// convert Intent scheme URL to Intent object
Intent intent = Intent.parseUri(url);
// forbid launching activities without BROWSABLE category
// forbid explicit call
// forbid Intent with selector Intent
// start the activity by the Intent
Option 2: Ensure that affected WebViews do not load untrusted web content
If a WebView needs to parse arbitrary
intent:// scheme URLs, please ensure that it does not load untrusted web content. Untrusted web content includes web content loaded over an unencrypted connection. Developers can set
android:usesCleartextTraffic to false in their Manifest or set a Network Security Config that disallows HTTP traffic. Alternatively, they can ensure that any affected WebViews do not load any URLs with HTTP schemes with
We recommend that developers ensure that affected WebViews do not load unrestricted URLs obtained from untrusted sources (e.g., URLs obtained from untrusted Intents).
We’re here to help
If you have technical questions about the vulnerability, you can post to Stack Overflow and use the tag “android-security.” For clarification on steps you need to take to resolve this issue, you can contact our developer support team.