Skip to content

[Android] Arbitrary route injection via unvalidated explicit Intents #190450

Closed

Description

@camsim99

Note

This bug is for tracking b/525525393.

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.

Related to: #190452

Activity

  1. self-assigned this
    on Aug 3, 2026
  2. added
    platform-androidAndroid applications specifically
    engineflutter/engine related. See also e: labels.
    P1High-priority issues at the top of the work list
    team-androidOwned by Android platform team
    triaged-androidTriaged by Android platform team
    on Aug 3, 2026
  3. camsim99 commented on Aug 3, 2026

    @camsim99
    ContributorAuthor

    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
  4. github-actions commented on Oct 10, 2026

    @github-actions

    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.

  5. locked as resolved and limited conversation to collaborators on Oct 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P1High-priority issues at the top of the work listengineflutter/engine related. See also e: labels.platform-androidAndroid applications specificallyteam-androidOwned by Android platform teamtriaged-androidTriaged by Android platform team

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions