Android security tags, read closely by Lightrion

CVE-2024-31322 AI-generated analysis

platform/frameworks/base, services/accessibility (AccessibilityManagerService)

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.

AccessibilityManagerService.updateServicesLocked now removes components that are no longer installed from the user's enabled accessibility services list and touch-exploration-granted list and persists both settings, so a service that disappears after a service update does not stay enabled.

Root cause

In services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java, updateServicesLocked(AccessibilityUserState) iterated userState.mInstalledServices to manage service connections, but never reconciled userState.mEnabledServices or userState.mTouchExplorationGrantedServices against the installed set. When a service update removed the accessibility service component (test name: testUpdateServiceWithoutIntent_disablesService), its ComponentName stayed in both in-memory lists and in the persisted Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES and TOUCH_EXPLORATION_GRANTED_ACCESSIBILITY_SERVICES values, so the enabled and granted state survived the removal of the service. The bulletin rates this as a High EoP.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to June 2024 · Findings