Android security tags, read closely by Lightrion

CVE-2025-48597 AI-generated analysis

platform/frameworks/base, WindowManager (services/core RootWindowContainer) and WM Shell PiP (libs/WindowManager/Shell PipTransition)

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

Moves the grant of the TRUSTED_OVERLAY surface flag for a PiP task out of WindowManager (where it was set as soon as the activity was marked pinned) into WM Shell's PipTransition.onFinishResize, so it is only set once Shell finishes the enter-PiP transition with a valid leash, while WM keeps only the revocation when the task leaves pinned mode.

Root cause

In RootWindowContainer.notifyActivityPipModeChanged, system_server applied mWmService.mTransactionFactory.get().setTrustedOverlay(task.getSurfaceControl(), inPip).apply() on every PiP mode change. When an activity entered PiP this marked the task surface as a trusted overlay immediately, at notification time, regardless of whether WM Shell actually received and completed the entering-PiP transition (the commit message says the flag must only be granted after WMShell successfully handled the transition). On Android 14 the call passed task.getSurfaceControl() without a null check (15/16 already had one). Surfaces flagged TRUSTED_OVERLAY are not counted as obscuring windows in input touch-obscured checks (general platform knowledge).

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to December 2025 · Findings