Android security tags, read closely by Lightrion

CVE-2025-26430 AI-generated analysis

platform/packages/apps/Settings, SPA bridge activity (SpaAppBridgeActivity) / app navigation

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

SpaAppBridgeActivity.getDestinationForApp now validates that the package name taken from the incoming "package:" intent URI matches a package-name regex before interpolating it into the SPA navigation route, returning null otherwise.

Root cause

In src/com/android/settings/spa/SpaAppBridgeActivity.kt, getDestinationForApp() took intent.data?.schemeSpecificPart from the bridge activity's intent (the bridge sits behind an activity-alias so SpaActivity need not be exported) and directly built the SPA destination string "$destinationPrefix/$packageName/${UserHandle.myUserId()}". The scheme-specific part was not checked to be a well-formed package name, so a value containing route-significant characters such as "/" or "#" (as in the new test "package:package.name/10#") would alter the structure of the destination route passed to startSpaActivityFromBridge instead of being a single package-name segment.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to May 2025 · Findings