Android security tags, read closely by Lightrion

CVE-2025-22439 AI-generated analysis

platform/packages/apps/DocumentsUI, picker (Storage Access Framework) ActionHandler

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

DocumentsUI's file picker now runs the existing restricted-initial-path check (/Android/data, /Android/obb, /Android/sandbox) on the restored last-accessed DocumentStack. If the stack's top document is restricted, the picker falls back to the default location.

Root cause

In src/com/android/documentsui/picker/ActionHandler.java, shouldPreemptivelyRestrictRequestedInitialUri() treats a URI as restricted when its external-storage path matches PATTERN_RESTRICTED_INITIAL_PATH (/Android/data, /Android/obb, /Android/sandbox and their subdirectories, per the code comment). But onLastAccessedStackLoaded() did not run this check. It is reached from both initLoadLastAccessedStack() and loadLastAccessedStack() (the latter via LoadLastAccessedStackTask), and for any non-null stack from mLastAccessed it called mState.stack.reset(stack) and refreshed the UI. A last-accessed stack for the calling package that pointed into a restricted directory was therefore restored without the check. The commit message says this bypassed the scoped storage restriction placed on the initial URI.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to April 2025 · Findings