Android security tags, read closely by Lightrion

CVE-2024-0038 AI-generated analysis

platform/frameworks/base, accessibility (AccessibilityManagerService) and UiAutomationConnection

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

Adds caller checks to the two injectInputEventToInputFilter entry points: UiAutomationConnection now requires a trusted, connected, non-shutdown caller, and AccessibilityManagerService now enforces android.permission.INJECT_EVENTS before forwarding the event to the accessibility input filter.

Root cause

AccessibilityManagerService.injectInputEventToInputFilter is an @Override of IAccessibilityManager.Stub. After waiting for the input filter to be installed, it called mInputFilter.onInputEvent(event, FLAG_PASS_TO_USER | FLAG_INJECTED) without checking the caller. Likewise, UiAutomationConnection.injectInputEventToInputFilter forwarded directly to mAccessibilityManager.injectInputEventToInputFilter without the throwIfCalledByNotTrustedUidLocked / throwIfShutdownLocked / throwIfNotConnectedLocked guards that sibling methods such as syncInputTransactions and setRotation apply. Callers able to reach either Binder interface could therefore pass InputEvents to the accessibility input filter without a permission or UID check.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to February 2024 · Findings