Android security tags, read closely by Lightrion

CVE-2025-48588 AI-generated analysis

platform/frameworks/base, system_server connectivity (services/core/java/com/android/server/connectivity/Vpn.java, always-on VPN)

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

Vpn.startAlwaysOnVpn() no longer resets the always-on VPN configuration (setAlwaysOnPackage(null, false, null)) when the always-on package is deemed unsupported while the device is in safe mode; per the code comment, the always-on VPN can then start after rebooting to normal mode.

Root cause

In Vpn.startAlwaysOnVpn(), when isAlwaysOnPackageSupported(alwaysOnPackage) returned false the code unconditionally called setAlwaysOnPackage(null, false, null), removing the always-on VPN package (with lockdown false). The commit message states that in safe mode third-party VPN apps have limited functionality and can be deemed unsupported for always-on use, so booting into safe mode caused the always-on VPN configuration to be removed rather than merely not started for that boot. The Android 15 test (testStartAlwaysOnVpnOnSafeMode) models this by making the VPN profile store and queryIntentServicesAsUser return null while isSafeMode() returns true, and asserts the always-on package survives.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to December 2025 · Findings