Android security tags, read closely by Lightrion

CVE-2026-28607 AI-generated analysis

platform/frameworks/base, packages/PackageInstaller (app archiving / unarchive UI)

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 permission checks (REQUEST_INSTALL_PACKAGES requested or INSTALL_PACKAGES granted) plus the hide-non-system-overlays window flag to UnarchiveErrorActivity.onCreate, factors the UID-to-package and requested-permission helpers into PackageUtil, and on Android 17 moves the PIA v2 UnarchiveLaunch forwarding behind those checks.

Root cause

UnarchiveErrorActivity.onCreate read intent extras (EXTRA_UNARCHIVE_STATUS, EXTRA_REQUIRED_BYTES; the class also defines installer package name/title extras) from any launcher. It did not verify that the calling UID held INSTALL_PACKAGES or requested REQUEST_INSTALL_PACKAGES, and it did not set SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS on its window. The sibling UnarchiveActivity already performed these caller checks, so the error dialog path was the unguarded one. On Android 17 (shown in the 17 diff), UnarchiveActivity also forwarded the incoming intent to the v2 UnarchiveLaunch activity (when PackageUtil.isVersionTwoEnabled) before running its own caller checks, so the v2 path was reached without the caller being validated.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to September 2026 · Findings