Android security tags, read closely by Lightrion

CVE-2024-49722 AI-generated analysis

platform/frameworks/base, packages/SettingsLib users (EditUserPhotoController avatar picker launch); plus platform/build/release aconfig flag value

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.

Makes SettingsLib's EditUserPhotoController launch the avatar picker with an explicit component (package and class from new config resources) instead of an implicit AVATAR_PICKER_ACTION intent when the avatarSync flag path is taken, and then removes the guarding fixAvatarCrossUserLeak flag so the fix is unconditional.

Root cause

In EditUserPhotoController.showAvatarPicker, when Flags.avatarSync() was true, the code built an Intent for AVATAR_PICKER_ACTION with CATEGORY_DEFAULT, added EXTRA_IS_USER_NEW and EXTRA_FILE_AUTHORITY, and called mActivityStarter.startActivityForResult without restricting the target. Only the non-avatarSync else branch constrained the intent (intent.setPackage to the calling app's own package). The implicit intent could therefore resolve to a component other than the intended avatar picker. The result was handled by onActivityResult (REQUEST_CODE_PICK_AVATAR), which acts on EXTRA_DEFAULT_ICON_TINT_COLOR or on data.getData() via onPhotoCropped. The flag name (fix_avatar_cross_user_leak) and the code comment tie the change to b/341688848, an avatar cross-user leak.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to April 2025 · Findings