CVE-2023-4211
Medium · 5.5 CISA KEVCVSS
5.5
EPSS
1.1%
Published
Oct 1, 2023
CISA due date
Oct 24, 2023
Cloudanix analysis
A malicious app on an unpatched device with certain Arm Mali graphics drivers may be able to read sensitive data from memory that it should not be allowed to access.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Data Exposure
- Component
- OS kernel
- Class
- Use After Free
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
CVE-2023-4211 is a use-after-free vulnerability in Arm Mali GPU kernel drivers for 5th Gen GPU Architecture, Bifrost, Midgard, and Valhall GPUs. A local, non-privileged user or application can trigger improper GPU memory handling so the driver continues to reference memory after it has been freed. The primary technical impact is unauthorized disclosure of sensitive memory contents; in exploit chains, this type of kernel-driver memory corruption may also help bypass sandboxing, weaken address-space protections, or support follow-on privilege-escalation activity, although the assigned impact for this issue is confidentiality-focused.
Why it matters to the business
Systems using affected Arm Mali GPU kernel drivers may allow a malicious local application to read sensitive data from memory without user interaction. This is especially relevant for mobile, embedded, and Linux-based devices where GPU drivers are exposed to applications or untrusted workloads. The vulnerability is listed in CISA KEV and has active in-the-wild exploitation, with the federal remediation deadline having passed on 2023-10-24, so unpatched devices should be treated as higher-risk even though the CVSS score is moderate. Operationally, exploitation could lead to theft of application data, credentials, cryptographic material, or information useful for broader device compromise.
How an attack unfolds
An attacker first obtains the ability to run code locally, commonly through a malicious application, compromised app process, browser-renderer chain, or another local execution path. The attacker then opens an exposed GPU driver interface such as a Mali device node and issues crafted GPU memory-management operations that cause a driver object or memory region to be freed while still reachable. By carefully controlling allocation timing and GPU interactions, the attacker forces the driver to access or map already-freed memory and reads contents that should no longer be available to the attacker-controlled process. In real intrusions, this vulnerability is most likely to be used as one stage of a larger exploit chain: an initial code-execution vector gets local execution, this flaw leaks sensitive kernel or process memory, and the leaked information is then used to defeat mitigations or support further compromise.
How to fix it
Apply vendor-provided security updates for the affected Arm Mali GPU kernel driver through the operating-system, device firmware, BSP, Android security, Linux distribution, or OEM update channel. Because no universal fixed version is provided for all downstream products, remediation should be verified against the specific device vendor or platform advisory for 5th Gen GPU Architecture, Bifrost, Midgard, and Valhall Mali drivers. Where patching is delayed, reduce exposure by restricting untrusted local code execution, limiting application installation sources, enforcing application sandboxing and SELinux/AppArmor policy, disabling unnecessary GPU access for untrusted workloads where feasible, and prioritizing replacement or isolation of devices that no longer receive GPU driver updates. KEV-listed status and observed exploitation mean patching should be prioritized even where the vulnerability requires local access.
How to confirm the fix worked
Confirm that the installed kernel, firmware, Android security patch level, or vendor GPU driver package includes the vendor fix for CVE-2023-4211. On Linux-based systems, inventory loaded Mali-related kernel modules and package versions, then compare them with the OEM or distribution security advisory. On Android or embedded devices, verify the device build, security patch level, and vendor bulletin coverage rather than relying only on the upstream kernel version. Confirm that untrusted applications cannot access GPU device nodes beyond the intended sandbox policy. Where available, run vendor or distribution vulnerability scanners and check kernel logs after testing for absence of GPU memory faults, Mali driver crashes, or abnormal GPU reset messages.
Typical attack path
- Gain local code execution on a device using an affected Arm Mali GPU kernel driver.
- Identify accessible GPU device interfaces, such as Mali or DRM render device nodes.
- Invoke crafted GPU memory allocation, mapping, job submission, or teardown sequences against the kernel driver.
- Trigger a use-after-free condition in GPU memory processing.
- Read memory contents exposed through the stale GPU memory reference.
- Use the disclosed information directly for data theft or as an aid in a broader exploit chain.
How to detect it
Detection should focus on signs of prior local exploitation and related exploit-chain activity rather than expecting a single definitive network indicator. Review kernel logs, Android logcat, EDR telemetry, auditd/eBPF records, crash dumps, and mobile threat-defense logs for unusual access to Mali GPU device nodes, repeated GPU memory faults, driver crashes, GPU resets, suspicious application crashes followed by privilege or sandbox-boundary changes, and unknown applications interacting heavily with GPU driver interfaces. On Android, examine logcat and tombstones for Mali/kbase faults and correlate them with package names, install times, sideloading events, SELinux denials, and process ancestry. On Linux, inspect audit records for opens/ioctls against GPU device files by unexpected users or processes and review dmesg/journal logs for Mali kernel-driver anomalies. Because exploitation is local and may leave limited artifacts, also hunt for companion indicators: newly installed suspicious apps, unexpected persistence, credential access, abnormal file reads by low-privileged processes, and other vulnerabilities used to obtain initial code execution.
- /dev/mali0
- /dev/mali
- /dev/dri/renderD
- mali_kbase
- kbase
- mali_kbase: GPU fault
- mali_kbase: Unhandled Page fault
- Mali GPU reset
- GPU fault
- Unhandled Page fault in AS
- Job failed on GPU
- mali: device error
- avc: denied
- tombstone
- logcat
What your security team should do
- Prioritize patching or firmware updates for devices with Arm Mali 5th Gen GPU Architecture, Bifrost, Midgard, or Valhall drivers because the vulnerability is in CISA KEV and exploitation has been observed in the wild.
- Create an asset inventory of mobile, embedded, Linux, Android, and appliance platforms using Arm Mali GPUs, including devices maintained through OEM firmware rather than standard OS package management.
- Treat unpatched internet-facing management appliances, shared workstations, mobile fleets, and kiosk/embedded systems as higher risk if users or applications can execute local code.
- Restrict installation and execution of untrusted applications, especially on mobile and embedded devices that cannot be patched promptly.
- Monitor kernel, Android logcat, EDR, and audit telemetry for abnormal Mali GPU driver faults, GPU resets, crashes, and unexpected access to GPU device nodes by unusual processes.
- For devices that are end-of-life or lack a vendor fix, plan replacement, isolation, or workload migration rather than accepting long-term exposure.
- Investigate suspicious local compromise indicators in parallel, because this flaw is most likely to be used after an attacker has already achieved local code execution.
The record
A local non-privileged user can make improper GPU memory processing operations to gain access to already freed memory.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Android | :unknown: | SoCVersion:0 | SoCVersion:2023-10-05 |
| Android | :unknown: | SoCVersion:0 | SoCVersion:2023-09-05 |
Related vulnerabilities
- CVE-2026-0106 In vpu_mmap of vpu_ioctl, there is a possible arbitrary address mmap due to a missing… Also affects :unknown:
- CVE-2025-36938 In U-Boot of append_uint32_le(), there is a possible fault injection due to a logic error… Also affects :unknown:
- CVE-2025-20791 In Modem, there is a possible system crash due to incorrect error handling. Also affects :unknown:
- CVE-2025-20757 In Modem, there is a possible system crash due to improper input validation. Also affects :unknown:
- CVE-2025-20751 In Modem, there is a possible system crash due to a missing bounds check. Also affects :unknown:
- CVE-2025-20752 In Modem, there is a possible system crash due to a missing bounds check. Also affects :unknown:
- CVE-2025-20750 In Modem, there is a possible system crash due to improper input validation. Also affects :unknown:
- CVE-2025-20756 In Modem, there is a possible system crash due to a logic error. Also affects :unknown: