Android security tags, read closely by Lightrion

CVE-2025-48612 AI-generated analysis

platform/packages/apps/Settings, NFC default payment app picker (com.android.settings.nfc.DefaultPaymentSettings / PaymentBackend)

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.

In Settings' NFC default payment app selector, the picker key used to be a "flattenedComponentName userId" string that was parsed back on selection. The fix replaces it with an opaque hash key looked up in a map of PaymentAppInfo entries, so the component and user passed to setDefaultPaymentApp always come from an enumerated candidate instead of a string parse.

Root cause

DefaultPaymentSettings.getDefaultKey() built the picker key as componentName.flattenToString() + " " + userHandle.getIdentifier(). setDefaultKey(String key) rebuilt the target with key.split(" "), ComponentName.unflattenFromString(keys[0]) and Integer.parseInt(keys[1]). Because the key was parsed back instead of being mapped to an enumerated candidate, the ComponentName and user id passed to PaymentBackend.setDefaultPaymentApp were never checked against the candidates obtained from getPaymentAppInfos(). The commit calls this string injection.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to June 2026 · Findings