Android security tags, read closely by Lightrion

CVE-2026-28650 AI-generated analysis

platform/frameworks/base, WindowManager (services/core/java/com/android/server/wm/WindowState.java)

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.

WindowState.setHiddenWhileSuspended now checks the window's base type (getBaseType()) instead of its own mAttrs.type. As a result, sub-windows whose top parent is a system alert window or toast of a suspended app are hidden, and later shown again, like their parent.

Root cause

setHiddenWhileSuspended used mAttrs.type in its early-return test `!isSystemAlertWindowType(mAttrs.type) && mAttrs.type != TYPE_TOAST`. For a sub-window (for example TYPE_APPLICATION_PANEL), mAttrs.type is a sub-window type. That type is neither a system alert window type nor TYPE_TOAST, so the method returned early and never called hide()/show(). As a result, when the owning package was suspended, a sub-window whose top parent is a system alert window (such as TYPE_APPLICATION_OVERLAY) was not hidden, while its parent overlay was. The sibling method setForceHideNonSystemOverlayWindowIfNeeded in the same file already used getBaseType() for the equivalent check.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to September 2026 · Findings