Android security tags, read closely by Lightrion

CVE-2025-26425 AI-generated analysis

platform/packages/modules/Permission, role management service (RoleService, IRoleManager binder)

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 (3 corrections). Verify against the commit before relying on it.

Adds an SDK-level precondition (SdkLevel.isAtLeastU()) at the top of RoleService's binder methods getDefaultApplicationAsUser and setDefaultApplicationAsUser so they throw IllegalStateException instead of executing when the Permission module runs on a platform below Android 14 (API 34).

Root cause

RoleService.getDefaultApplicationAsUser and setDefaultApplicationAsUser are the service side of RoleManager.getDefaultApplication/setDefaultApplication. Per index search, those client methods are annotated @RequiresPermission(MANAGE_DEFAULT_APPLICATIONS) and @RequiresApi(UPSIDE_DOWN_CAKE). The fix's own comment says the MANAGE_DEFAULT_APPLICATIONS permission is only available on U+. The service methods did not check that the platform was U or newer. So when the updatable Permission module ran on an older platform (the new CTS test targets SDK S through T), the binder methods could still be reached and ran their logic: the cross-user check, the user existence check, then the role default-application get/set. This happened without the intended U+ permission guarantee. The material does not show the exact permission-enforcement code inside these methods.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to May 2025 · Findings