CVE-2023-21670 Overview
CVE-2023-21670 is a memory corruption vulnerability in the GPU subsystem of numerous Qualcomm chipsets. The flaw arises from arbitrary command execution from the GPU operating in privileged mode. A local attacker holding low privileges can trigger memory corruption that leads to compromise of confidentiality, integrity, and availability. The issue was disclosed in the Qualcomm June 2023 security bulletin and affects a broad set of Snapdragon mobile, automotive, compute, IoT, and connectivity platforms. Public technical analysis links the issue to the Adreno KGSL (Kernel Graphics Support Layer) driver. The vulnerability is mapped to [CWE-284] Improper Access Control and [CWE-863] Incorrect Authorization.
Critical Impact
A local low-privileged process can issue arbitrary GPU commands in privileged mode, corrupting kernel-accessible memory and enabling privilege escalation on affected Snapdragon devices.
Affected Products
- Qualcomm Snapdragon mobile platforms including SD660, SD670, SD730, SD855, SD865 5G, SD888, SM8150, SM8250, SM8350, SM8450, and SM8475
- Qualcomm automotive and compute platforms including SA8155P, SA8195P, SA8255P, SA8295P, and Snapdragon 7c+ Gen3 Compute
- Qualcomm connectivity, IoT, and XR firmware including QCA6390, QCA6595, WCN3990, WCN6740, Snapdragon XR1/XR2, and 315 5G IoT Modem
Discovery Timeline
- 2023-06-06 - CVE-2023-21670 published to the National Vulnerability Database
- June 2023 - Qualcomm publishes the June 2023 Security Bulletin with patch information
- 2024-11-21 - Last updated in NVD database
Technical Details for CVE-2023-21670
Vulnerability Analysis
The vulnerability resides in the GPU subsystem used by Qualcomm Adreno graphics on Snapdragon SoCs. The kernel-side graphics driver, commonly referred to as Adreno KGSL, accepts command buffers from user space and submits them to the GPU. When the GPU executes these commands while running in a privileged mode, the absence of proper access control allows attacker-controlled commands to manipulate memory regions that should be inaccessible to user-space callers. This results in memory corruption within a security-sensitive context. Because the GPU shares address spaces and DMA-capable buffers with the kernel, corruption from this path can affect kernel structures, leading to elevation of privilege on the device. The flaw maps to [CWE-284] and [CWE-863], reflecting that the underlying defect is missing or incorrect authorization on GPU command submission rather than a memory safety bug in isolation.
Root Cause
The Adreno KGSL driver permits low-privileged callers to submit GPU work that executes with elevated GPU privileges. Authorization checks on which commands and which memory regions may be referenced are insufficient. A crafted command stream therefore reaches privileged GPU execution paths and reads or writes memory outside the caller's intended boundary.
Attack Vector
Exploitation requires local access and the ability to run code on the device, for example through an installed Android application that opens the KGSL device node. The attacker submits a malicious GPU command buffer to the driver. The GPU executes the commands in privileged mode and corrupts memory, which an attacker can leverage to escalate from an unprivileged app context toward kernel-level capabilities. No user interaction is required.
No verified proof-of-concept code is available. Public technical analysis of the Adreno KGSL insecure execution behavior is referenced by Packet Storm Security.
Detection Methods for CVE-2023-21670
Indicators of Compromise
- Unexpected access to the /dev/kgsl-3d0 device node by applications that do not legitimately render graphics or perform GPU compute
- Kernel logs showing GPU faults, page faults attributed to the Adreno driver, or repeated GPU resets shortly after a specific application launches
- Android applications requesting GPU compute APIs while also showing privilege-escalation behavior such as spawning shells or modifying SELinux contexts
Detection Strategies
- Inventory devices against the affected Snapdragon and Qualcomm chipset list and confirm whether vendor firmware updates from the June 2023 bulletin have been applied
- Monitor mobile endpoints for applications that open GPU driver device nodes and subsequently trigger kernel panics, GPU hangs, or watchdog resets
- Correlate GPU subsystem errors in dmesg and Android logcat with process identifiers to identify suspicious callers of the KGSL ioctl interface
Monitoring Recommendations
- Centralize Android kernel and system logs from managed devices to detect anomalous KGSL driver errors at scale
- Track mobile device firmware patch levels through a unified device management or mobile threat defense platform
- Alert on installation of unknown applications that request graphics or compute APIs on devices that have not received the June 2023 or later Qualcomm patch
How to Mitigate CVE-2023-21670
Immediate Actions Required
- Apply the OEM firmware and Android security update that incorporates the Qualcomm June 2023 patch level on every affected device
- Identify and inventory all endpoints using the affected Qualcomm chipsets, including mobile, automotive, IoT, and XR devices
- Restrict installation of untrusted applications on affected devices until patches are deployed, since exploitation requires local code execution
Patch Information
Qualcomm released fixes through the Qualcomm June 2023 Security Bulletin. Patches are delivered to end devices by OEMs as part of their monthly Android security updates or platform firmware releases. Device administrators must verify that the OEM-shipped security patch level reflects the June 2023 Qualcomm fixes, since the NVD publication date alone does not confirm deployment.
Workarounds
- No vendor-supplied workaround removes the underlying flaw; patching is the only complete remediation
- Limit device exposure by enforcing application allow-lists through enterprise mobility management and blocking sideloading of unsigned APKs
- Disable or remove non-essential third-party applications on affected devices that have not yet received the firmware update
# Verify Android security patch level on a managed device via adb
adb shell getprop ro.build.version.security_patch
# Confirm the value is 2023-06-05 or later, indicating the June 2023 Qualcomm fixes are included
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

