You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Android] Arbitrary route injection via unvalidated explicit Intents #190450
Flutter applications generated with the default template are vulnerable to arbitrary route injection because maybeGetInitialRouteFromIntent unconditionally parses the data URI of incoming explicit Intents without validating the Intent action (ACTION_VIEW), verifying the caller identity, or matching the URI against declared Intent filters. Since deep-linking defaults to enabled, a zero-permission co-resident app can send an explicit Intent directly targeting the exported default MainActivity, bypassing Android App Links domain verification and forcing the application to navigate to sensitive routes.
My proposed solution: Implement a tiered trust model based on build mode and Intent source:
Unconditionally allow Intent use for specifying routes in debug and profile modes to preserve developer velocity
In release mode, only trust the route if it originates internally from the app itself, allowing secure self-routing for notifications OR the Intent action is explicitly ACTION_VIEW and matches a declared <intent-filter> in the application's manifest
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.
Activity
camsim99 commentedon Aug 3, 2026
My proposed solution: Implement a tiered trust model based on build mode and
Intentsource:Intentuse for specifying routes in debug and profile modes to preserve developer velocityACTION_VIEWand matches a declared<intent-filter>in the application's manifest[Android] Refuse external setters of engine entrypoint and cached eng…
[Android] Refuse external setters of engine entrypoint and cached eng…
[Android] Refuse external setters of engine entrypoint and cached eng…
[Android] Add breaking change page for hardened entrypoint and cached…
github-actions commentedon Oct 10, 2026
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of
flutter doctor -vand a minimal reproduction of the issue.