Android security tags, read closely by Lightrion

CVE-2023-21267 AI-generated analysis

platform/frameworks/base, SystemUI keyguard (KeyguardViewMediator) and core LockPatternUtils

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.

Makes SystemUI's KeyguardViewMediator show (and refuse to hide) the keyguard when the current user is in lockdown, even if an app has externally disabled the keyguard. It also fixes LockPatternUtils.isUserInLockdown so that it still detects lockdown when other strong-auth flags are set.

Root cause

In packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java, doKeyguardLocked() returned early ("not showing because externally disabled") whenever mExternallyEnabled was false. setKeyguardEnabled(false) also hid an already showing keyguard. Neither path checked whether the user had triggered lockdown. The mediator also did not react to strong-auth state changes. The commit's manual test (app pinning with "Ask for PIN before unpinning" disabled, then Lockdown from the power menu) expects the keyguard to appear and require primary authentication. Separately, core/java/com/android/internal/widget/LockPatternUtils.java isUserInLockdown() compared getStrongAuthForUser(userId) for equality with STRONG_AUTH_REQUIRED_AFTER_USER_LOCKDOWN. It therefore returned false whenever another strong-auth flag (e.g. STRONG_AUTH_REQUIRED_AFTER_LOCKOUT) was also set, which defeated the new lockdown checks in those states.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to April 2024 · Findings