CVE-2025-48638 Overview
CVE-2025-48638 is an out-of-bounds write vulnerability in the __pkvm_load_tracing function of trace.c within the Android protected KVM (pKVM) hypervisor tracing subsystem. The flaw stems from improper input validation, allowing a local attacker with low privileges to write beyond intended memory boundaries. Successful exploitation leads to local privilege escalation without requiring user interaction or additional execution privileges. Google published the issue in the Android Security Bulletin December 2025.
Critical Impact
A local low-privileged process can escalate to hypervisor-level privileges through unchecked input passed into pKVM tracing, undermining Android's kernel isolation guarantees.
Affected Products
- Google Android (kernel component, protected KVM tracing subsystem)
- Android devices shipping the pKVM trace.c code path prior to the December 2025 patch level
- Downstream Android Open Source Project (AOSP) kernel forks incorporating the vulnerable commit
Discovery Timeline
- 2025-12-08 - CVE-2025-48638 published to the National Vulnerability Database (NVD)
- 2025-12-01 - Google publishes fix in the Android Security Bulletin for December 2025
- 2026-06-17 - Last updated in NVD database
Technical Details for CVE-2025-48638
Vulnerability Analysis
The defect resides in __pkvm_load_tracing, a function inside the Android kernel's protected KVM tracing implementation (trace.c). pKVM is a hypervisor mode that isolates guest VMs and sensitive workloads from the host kernel. When user-space or kernel callers invoke the tracing load path, __pkvm_load_tracing accepts input parameters describing trace buffers. Missing or incomplete bounds validation on these parameters allows a write to reference memory outside the allocated region.
Because pKVM runs at a higher exception level than the host kernel, corrupting hypervisor-managed memory permits an attacker to influence code and data structures that the standard kernel cannot ordinarily reach. This weakness is classified under CWE-787 (Out-of-bounds Write) and CWE-20 (Improper Input Validation).
Root Cause
The root cause is inadequate validation of caller-supplied size or offset values before they are used to compute a write destination inside __pkvm_load_tracing. Without a strict check against the tracing buffer bounds, the function performs an out-of-bounds store into hypervisor memory. The fix, applied in commits 0429b7af308c and 96ebe96170d6, tightens the input validation and length checks.
Attack Vector
Exploitation requires local access with low privileges on an affected Android device. An attacker running a compromised application or process on the device invokes the vulnerable pKVM tracing interface with crafted parameters. The out-of-bounds write can be used to corrupt hypervisor state, ultimately yielding privilege escalation. No user interaction is required, and the attack does not need additional execution privileges beyond initial process execution.
No public proof-of-concept exploit or CISA Known Exploited Vulnerabilities (KEV) listing exists for this issue at the time of writing.
Detection Methods for CVE-2025-48638
Indicators of Compromise
- Unexpected kernel oops, panics, or hypervisor faults referencing __pkvm_load_tracing or pKVM trace paths in logcat and dmesg.
- Local processes making unusual ioctl or syscall sequences targeting the pKVM tracing interface.
- Post-exploitation artifacts such as unauthorized setuid binaries or SELinux domain transitions to privileged contexts.
Detection Strategies
- Monitor kernel logs for pKVM-related error traces and abnormal exception-level transitions on ARM64 devices.
- Compare device security patch levels against 2025-12-01 using Mobile Device Management (MDM) fleet reports to flag unpatched endpoints.
- Correlate application install telemetry with subsequent kernel instability events to identify potential exploitation attempts.
Monitoring Recommendations
- Enforce Android security patch-level policies through MDM and block enrollment of devices below the December 2025 patch level.
- Ingest mobile endpoint telemetry into a centralized data lake to enable retrospective queries against kernel crash signatures tied to pKVM.
- Track process behavior for privilege transitions immediately following invocations of tracing or debug interfaces.
How to Mitigate CVE-2025-48638
Immediate Actions Required
- Apply the Android security patch level 2025-12-01 or later on all managed devices as soon as vendor builds are available.
- Restrict installation of untrusted applications, since exploitation requires local code execution on the device.
- Audit fleet inventory for devices that no longer receive vendor updates and prioritize replacement or isolation.
Patch Information
Google addressed CVE-2025-48638 in the Android Security Bulletin December 2025. The kernel fixes are available in AOSP commits 0429b7af308c and 96ebe96170d6. Device manufacturers (OEMs) integrate these patches into their monthly security updates; end users should install the update through system settings once their carrier or OEM releases it.
Workarounds
- No official workaround exists; patching is the only supported remediation.
- Reduce exposure by limiting sideloading and enforcing Google Play Protect on all managed devices.
- Apply mobile threat defense controls that block execution of untrusted applications and detect privilege-escalation behavior at runtime.
# Verify Android security patch level on a device via adb
adb shell getprop ro.build.version.security_patch
# Expected output for remediated devices: 2025-12-01 or later
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

