Android security tags, read closely by Lightrion

CVE-2025-22427 AI-generated analysis

platform/packages/apps/Settings, notification listener access confirmation dialog (NotificationAccessConfirmationActivity)

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.

Removes the onResume/onPause overrides in Settings' NotificationAccessConfirmationActivity that passed the system-only flag SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS to Window.addFlags/clearFlags (public flag namespace), leaving only the correct onCreate handling of that flag.

Root cause

NotificationAccessConfirmationActivity overrode onResume to call getWindow().addFlags(WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS) and onPause to call getWindow().clearFlags(...) with the same constant. SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS is a system flag that belongs in LayoutParams.privateFlags; Window.addFlags/clearFlags modify LayoutParams.flags. The new test makes this explicit: after onCreate the flag must be present in privateFlags and the same bit value must be absent from flags. So the onResume call set an unintended public flag bit on the activity's window (and onPause cleared it). Per the commit message, onCreate already adds the system flag correctly (the activity still statically imports SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS at android-security-14.0.0_r29), so the onResume/onPause code was both wrong and redundant. The material does not state which public flag or window behavior that bit value triggered.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to April 2025 · Findings