Android security tags, read closely by Lightrion

CVE-2025-48642 AI-generated analysis

platform/packages/modules/Virtualization, pvmfw (protected VM firmware) / vmbase, aarch64 cache maintenance

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.

Changes pvmfw's aarch64 data-cache maintenance from "dc cvau" (clean to Point of Unification) to "dc cvac" (clean to Point of Coherency) in the exit path jump_to_payload and in the flush_region helper, so that zeroed memory that could hold secrets reaches main memory.

Root cause

In pvmfw/src/entry.rs::jump_to_payload, pvmfw zeroes .data/.bss (skipping the BCC) and the stack. It then flushes the d-cache over those regions with "dc cvau" before writing sctlr_el1 (disabling caches and the page table, per the code comment) and jumping to the payload. pvmfw/src/helpers.rs::flush_region, which flush and flushed_zeroize build on, also cleaned lines with "dc cvau". "dc cvau" only cleans to the Point of Unification. Per the commit message, some SoCs have a unified cache before the Point of Coherency, and there a clean to PoU might not flush the data to main memory. As a result, zeroing of memory that could hold secrets might not reach main memory.

How the fix works

Completeness

Behavior changes

Per major

Unknowns

Back to March 2026 · Findings