Android security tags, read closely by Lightrion

CVE-2025-48560 AI-generated analysis

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

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

Moves the ACCESSIBILITY_MOTION_EVENT_OBSERVING permission check in AbstractAccessibilityServiceConnection out of the property-setting code that ran under a cleared Binder identity, and into the service-info update method before Binder.clearCallingIdentity(). The check is now evaluated against the calling accessibility service instead of system_server, and requested observed motion event sources are reset to 0 when the caller lacks the permission.

Root cause

In AbstractAccessibilityServiceConnection.java, the code that copies info.getObservedMotionEventSources() into mObservedMotionEventSources was guarded by mContext.checkCallingOrSelfPermission(ACCESSIBILITY_MOTION_EVENT_OBSERVING), gated on Flags.motionEventObserving(). Per the commit message, this check ran inside a Binder clear-identity call, so it used the permissions of system_server instead of those of the calling AccessibilityService.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to September 2025 · Findings