Android security tags, read closely by Lightrion

CVE-2024-40676 AI-generated analysis

platform/frameworks/base, services/core AccountManagerService (account authenticator KEY_INTENT validation)

AI-generated: written from the bulletin and the fixing diffs by claude-fable-5-1, then checked against the code by claude-opus-5-5 (6 corrections). Verify against the commit before relying on it.

AccountManagerService.checkKeyIntent now rejects authenticator-supplied KEY_INTENT Intents whose data URI scheme is "content", returning false before the resolved activity is accepted.

Root cause

checkKeyIntent(int authUid, Bundle bundle) in services/core/java/com/android/server/accounts/AccountManagerService.java is the policy gate for Intents that an account authenticator supplies under AccountManager.KEY_INTENT. Its doc comment says the goal is to stop an authenticator from tricking users into launching arbitrary intents. Before the fix, the method checked the parcel shape (checkKeyIntentParceledCorrectly), set an empty ClipData so that no URIs inside it would be promoted for grants, resolved the activity, and required the target to be either an exported system activity or signature-compatible with the authenticator. It never inspected the Intent's own data URI. An Intent with a "content" scheme data URI therefore passed the check and was stored back into the bundle (bundle.putParcelable(KEY_INTENT, intent)) with its component pinned to the resolved activity.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to October 2024 · Findings