Android security tags, read closely by Lightrion

CVE-2025-26427 AI-generated analysis

platform/packages/apps/DocumentsUI (picker ActionHandler), platform/frameworks/base (FileSystemProvider / ExternalStorageProvider), platform/packages/providers/DownloadProvider (DownloadStorageProvider)

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.

Extends the Android 11 SAF privacy restriction on /Android/data, /Android/obb and /Android/sandbox to their whole subtrees. ExternalStorageProvider now hides those subtrees through a new FileSystemProvider.shouldHideDocument() hook, and the DocumentsUI picker no longer launches to an EXTRA_INITIAL_URI inside them.

Root cause

Two deny-lists were too narrow. 1. DocumentsUI picker/ActionHandler.launchToInitialUri(): the old PATTERN_BLOCK_PATH (".*:android\\/(?:data|obb|sandbox)$") was matched against the lowercased raw URI path. It only matched when that path ended exactly in Android/data, Android/obb or Android/sandbox. A document URI for any subdirectory of those passed the check, and launchToDocument() loaded the picker directly into it. 2. Provider side: FileSystemProvider.shouldHide() used PATTERN_HIDDEN_PATH ("^/storage/[^/]+/(?:[0-9]+/)?Android/(?:data|obb|sandbox)$"), which again covers only the exact directories. As the fix comment states, ExternalStorageProvider "hides" only Android/data/, Android/obb/ and Android/sandbox/, "but NOT their subdirectories". The DocumentsUI path was not canonicalized before matching. Together, this let a requesting app steer the ACTION_OPEN_DOCUMENT / ACTION_OPEN_DOCUMENT_TREE picker into restricted subtrees that the Android 11 restriction is meant to exclude.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to May 2025 · Findings