CVE-2021-1906
Medium · 5.5 CISA KEVCVSS
5.5
EPSS
0.5%
Published
May 7, 2021
CISA due date
Nov 17, 2021
Cloudanix analysis
Some Qualcomm-based devices can be deliberately made unstable or unusable by a local app or process until they are updated.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Firmware
- Class
- Denial of service
- Remediation
- Patch
- Effort
- Medium
- Patch risk
- Low
What it actually does
This vulnerability is a local denial-of-service flaw in Qualcomm Snapdragon firmware/driver handling for GPU memory address deregistration. When an address deregistration operation fails, the failure is not handled correctly, which can leave GPU address-management state inconsistent and cause subsequent GPU address allocations to fail. An attacker with local, low-privileged execution on an affected device may be able to trigger repeated allocation failures or GPU/driver instability, resulting in application crashes, graphics subsystem failure, device hangs, or reboot conditions. The CVSS vector indicates local access, low attack complexity, low privileges required, no user interaction, no confidentiality or integrity impact, and high availability impact.
Why it matters to the business
Successful exploitation can disrupt affected Snapdragon-based devices by degrading or disabling graphics/GPU functionality, causing application failures, system instability, or forced reboots. For mobile, IoT, automotive, industrial, wearable, voice/music, connectivity, and embedded devices, this can translate into service interruption, impaired user experience, operational downtime, safety-adjacent disruption where displays or GPU-backed workloads are important, and increased support or replacement costs. The issue is listed in CISA KEV with a remediation due date of 2021-11-17 and has been reported as exploited in the wild, so organizations should treat unpatched affected firmware as a known-exploited exposure even though the EPSS score is low and stable.
How an attack unfolds
An attacker first obtains local code execution on an affected Snapdragon-based device, such as through a malicious app, compromised local process, chained vulnerability, or physical/debug access path. The attacker then exercises GPU or graphics-driver interfaces in a way that causes address deregistration to fail. Because the firmware/driver does not correctly recover from that failure, internal GPU address-allocation state can become inconsistent. Subsequent allocation attempts fail, destabilizing GPU-backed applications or the graphics subsystem. Repeated triggering can produce a persistent denial-of-service condition until the affected service, driver, or device is reset. In real-world exploitation, this type of flaw is most likely used as part of a chain after initial local execution to disrupt device availability or impair monitoring/user interaction rather than to steal data directly.
How to fix it
Apply the vendor-provided Qualcomm/OEM firmware or operating-system update that contains the fix for CVE-2021-1906. Because Snapdragon firmware updates are commonly delivered through device OEM, carrier, BSP, Android security bulletin, embedded Linux vendor, or automotive/IoT platform update channels, remediation should be tracked by exact device model, chipset, firmware branch, and OEM advisory rather than by package name alone. No fixed versions were provided in the input, so organizations should consult Qualcomm and device-vendor advisories for the applicable patched firmware builds. Where immediate patching is not possible, reduce risk by restricting installation and execution of untrusted local applications, enforcing application allowlisting on managed/embedded devices, disabling unnecessary local/debug access, limiting shell/ADB/JTAG access, and prioritizing patching for devices exposed to untrusted users or running mission-critical GPU/display workloads.
How to confirm the fix worked
Confirm exposure by inventorying devices and firmware that use affected Qualcomm Snapdragon components, then compare chipset, firmware, BSP, Android patch level, and OEM build numbers against Qualcomm and OEM security advisories. Validate remediation by confirming the patched firmware/OS build is installed and that the vendor bulletin including this vulnerability is marked as applied. Functional validation should include exercising graphics/GPU workloads after patching and verifying there are no recurring GPU address-allocation failures, graphics service crashes, kernel warnings, device hangs, or unexpected reboots. For Android-derived platforms, review the security patch level and vendor security patch level; for embedded/automotive/IoT platforms, review the BSP release notes and firmware component versions supplied by the OEM or silicon vendor.
Typical attack path
- Identify a device using an affected Qualcomm Snapdragon chipset or firmware build.
- Gain local low-privileged execution on the device through a malicious app, compromised process, physical access, or another vulnerability.
- Open or interact with GPU/graphics driver interfaces exposed to local processes.
- Trigger a GPU address deregistration failure condition.
- Exploit the improper failure handling to corrupt or exhaust GPU address-allocation state.
- Cause GPU allocation failures, graphics subsystem instability, application crashes, device hangs, or reboot behavior.
- Optionally repeat the trigger to maintain a denial-of-service condition.
How to detect it
Post-exploitation detection is difficult because the vulnerability causes availability failures and may not create a unique forensic artifact. Focus on endpoint, mobile-device-management, embedded telemetry, kernel logs, Android logcat, crash dumps, watchdog reset records, and system reboot history. Look for repeated GPU/graphics driver allocation failures, KGSL/Adreno driver errors, graphics service crashes, application crashes involving GPU memory allocation, watchdog resets following graphics errors, and clusters of unexplained reboots after installation or execution of a local app. On Android-derived systems, collect logcat buffers, kernel dmesg/pmsg/ramoops logs, tombstones, dropbox entries, and app install/execution history around the time of instability. On embedded Linux or automotive/IoT systems, review persistent kernel logs, systemd journal entries if available, watchdog logs, and vendor crash telemetry. Because known exploitation has been reported, correlate these artifacts with suspicious local code execution, newly installed untrusted applications, abnormal use of GPU device nodes, or attempts to access graphics driver interfaces from unexpected processes.
- /dev/kgsl-3d0
- kgsl
- KGSL
- adreno
- Adreno
- GPU address allocation failure
- address allocation failure
- address deregistration
- deregistration failure
- gpu fault
- GPU fault
- kgsl_sharedmem_alloc
- kgsl_mmu
- kgsl_iommu
- kgsl_drawctxt
- kgsl-3d0
- SurfaceFlinger
- hwui
- libGLES
- watchdog bite
- Watchdog detected hard LOCKUP
- ramoops
- pstore
- /sys/fs/pstore
- /proc/last_kmsg
- /sys/class/kgsl/kgsl-3d0
What your security team should do
- Prioritize identification and remediation of affected Snapdragon-based devices because this is a known-exploited vulnerability listed in CISA KEV, with the historical due date of 2021-11-17 already passed.
- Obtain patched firmware or OS images from the relevant OEM, carrier, BSP provider, or Qualcomm-supported update channel and deploy them to affected models.
- Prioritize devices that permit third-party apps, local user access, physical access, debug access, kiosk interaction, or field operation where denial of service would affect operations.
- If patching is delayed, enforce application allowlisting, remove untrusted apps, disable unnecessary developer/debug interfaces, and restrict local shell access.
- Monitor device telemetry, kernel logs, crash logs, and reboot reasons for GPU/graphics allocation failures or repeated graphics subsystem crashes.
- For managed mobile and embedded fleets, require minimum OS/vendor security patch levels and quarantine or retire devices that cannot receive fixed firmware.
- Assess whether this vulnerability could be chained with other local-code-execution issues in the environment and prioritize hardening accordingly.
The record
Improper handling of address deregistration on failure can lead to new GPU address allocation failure. in Snapdragon Auto, Snapdragon Compute, Snapdragon Connectivity, Snapdragon Consumer IOT, Snapdragon Industrial IOT, Snapdragon Mobile, Snapdragon Voice & Music, Snapdragon Wearables
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Android | :linux_kernel:Qualcomm | SoCVersion:0 | SoCVersion:2021-05-05 |
Related vulnerabilities
- CVE-2023-33106 Memory corruption while submitting a large list of sync points in an AUX command to the… Also affects :linux_kernel:Qualcomm
- CVE-2023-33107 Memory corruption in Graphics Linux while assigning shared virtual memory region during… Also affects :linux_kernel:Qualcomm
- CVE-2023-33063 Memory corruption in DSP Services during a remote call from HLOS to DSP. Also affects :linux_kernel:Qualcomm
- CVE-2023-33053 Memory corruption in Kernel while parsing metadata. Also affects :linux_kernel:Qualcomm
- CVE-2020-11301 Improper authentication of un-encrypted plaintext Wi-Fi frames in an encrypted network… Also affects :linux_kernel:Qualcomm
- CVE-2020-11261 Memory corruption due to improper check to return error when user application requests… Also affects :linux_kernel:Qualcomm
- CVE-2021-1905 Possible use after free due to improper handling of memory mapping of multiple processes… Also affects :linux_kernel:Qualcomm
- CVE-2026-109618 PHP uses longjmp() for out-of-memory (OOM) errors to exit the current context and abort… CWE-755