Android security tags, read closely by Lightrion

CVE-2024-49733 AI-generated analysis

platform/frameworks/base, packages/SettingsLib (com.android.settingslib.applications.ServiceListing)

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

ServiceListing.reload() in SettingsLib now always includes every component already approved in the backing Settings.Secure setting (queried explicitly by ComponentName), instead of only listing services that currently match the intent action, declared permission and validator, so previously approved services no longer disappear from the list given to callbacks.

Root cause

ServiceListing.reload() built mServices only from pmWrapper.queryIntentServicesAsUser(new Intent(mIntentAction), ...). It then dropped any ServiceInfo whose info.permission did not equal mPermission or that failed mValidator.test(info). The set of approved components (mEnabledServices, parsed from Settings.Secure mSetting in loadEnabledServices()) was never used when building the list. A component that was approved earlier, possibly under laxer criteria, and that now does not resolve for mIntentAction, does not declare mPermission, or fails the validator was therefore left out of the list delivered to Callback.onServicesReloaded(), even though it stayed approved in the setting.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to January 2025 · Findings