CVE-2022-22706
High · 7.8 CISA KEVCVSS
7.8
EPSS
1.1%
Published
Mar 3, 2022
CISA due date
Apr 20, 2023
Cloudanix analysis
A malicious app or local attacker on affected devices can potentially take full control of the device unless the vendor security update is installed.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Privilege Gain
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
This is a local privilege-escalation memory corruption issue in the Arm Mali GPU kernel driver. A low-privileged local user or process can abuse the driver to obtain write access to memory pages that should be read-only. Because the affected component runs in kernel context, successful exploitation can allow modification of kernel memory, bypass of operating-system security boundaries, arbitrary code execution with elevated privileges, and full compromise of confidentiality, integrity, and availability on the affected device. Affected driver branches include Midgard r26p0 through r31p0, Bifrost r0p0 through r35p0, and Valhall r19p0 through r35p0.
Why it matters to the business
An attacker who can run code on an affected device can potentially take full control of it, bypass application sandboxing, steal sensitive data, disable security controls, install persistent malware, or use the device as a foothold for further activity. The issue is listed in CISA KEV with a remediation due date of 2023-04-20 and is marked as actively exploited in the wild, so affected mobile, embedded, and Linux-based products using vulnerable Arm Mali GPU drivers should be treated as high-priority even though the flaw is local rather than directly network-exploitable.
How an attack unfolds
Exploitation typically starts after the attacker obtains local code execution, such as through a malicious application, a chained browser or messaging exploit, an abused sideloading path, physical access with shell access, or compromise of another local process. The attacker then interacts with the Mali GPU kernel driver, commonly through exposed GPU device interfaces and driver ioctls, to trigger the condition that permits writes to read-only memory pages. By carefully shaping memory allocations and driver operations, the attacker can corrupt privileged kernel state, such as credentials, security policy state, function pointers, or page-table-related structures. Once kernel memory is modified, the attacker can escalate from an unprivileged context to root or equivalent kernel-level control, disable protections, access data belonging to other applications or users, and deploy additional payloads. Public exploitation has been observed in the wild, and the KEV listing indicates defenders should assume exploit code or operational techniques are available to threat actors.
How to fix it
Apply the operating-system, firmware, or vendor security update that incorporates a fixed Arm Mali GPU kernel driver. For driver-branch remediation, move beyond the vulnerable ranges: Midgard should be updated past r31p0, while Bifrost and Valhall should be updated past r35p0, or to a vendor-confirmed fixed build. Because many devices receive the Mali driver only through OEM firmware, Android security bulletins, Linux distribution kernels, or embedded vendor BSP updates, validate the fix through the device or platform vendor rather than relying only on upstream Arm version names. Where immediate patching is not possible, reduce exposure by restricting installation and execution of untrusted local applications, disabling unnecessary shell or debug access, enforcing application allowlisting, maintaining SELinux/AppArmor or equivalent controls in enforcing mode, blocking sideloading where applicable, and prioritizing replacement or isolation of devices that cannot receive fixed firmware.
How to confirm the fix worked
Confirm that the deployed kernel, firmware, or device image contains a Mali GPU driver version outside the affected ranges or that the platform vendor explicitly identifies the build as fixed for this issue. On Linux-based systems, inventory loaded GPU modules, kernel package versions, device-tree or firmware metadata, and vendor release notes. On Android and embedded systems, verify the security patch level, OEM advisory, build fingerprint, kernel build date, and GPU driver/BSP release against vendor documentation. Attempting to reproduce exploitation is not recommended on production devices; instead, validate with authenticated inventory, kernel/module version checks, vendor patch attestations, and controlled lab testing where driver version and exploitability can be safely assessed.
Typical attack path
- Gain local code execution on a device that uses an affected Arm Mali GPU kernel driver branch.
- Identify that the Mali GPU driver interface is present and accessible from the current privilege context.
- Open the GPU device interface and issue crafted driver operations or ioctls to reach the vulnerable memory-management path.
- Manipulate memory layout so the driver grants or enables writes to pages that should remain read-only.
- Modify kernel memory to elevate privileges, bypass sandboxing, or disable mandatory access controls.
- Execute follow-on actions as a privileged user, such as credential theft, surveillance, persistence, lateral movement support, or tampering with security tooling.
How to detect it
There is no single universal network indicator for this vulnerability because exploitation is local and occurs inside the GPU kernel driver. To determine whether exploitation may have already occurred, collect endpoint, mobile-device, and kernel telemetry around the time of suspicious activity. Review kernel logs, Android logcat, crash dumps, pstore/ramoops records, audit logs, SELinux or AppArmor denials, EDR events, and mobile threat defense alerts for abnormal Mali driver interactions, kernel oops or panic events, unexpected privilege changes, security-control tampering, and suspicious processes accessing the GPU device interface. Look for untrusted or newly installed applications opening Mali device nodes followed by root-level actions, modification of system partitions, disabling of SELinux or verified boot signals, creation of unexpected setuid binaries, installation of persistence mechanisms, or unexplained credential and data access. Because observed exploitation may be part of a chained attack, also investigate preceding initial-access vectors such as malicious apps, browser exploitation, message-based payloads, sideloaded packages, physical debug access, or compromised local services. Absence of these artifacts does not prove non-exploitation, as successful kernel privilege escalation may leave few durable logs, especially on consumer mobile and embedded devices.
- /dev/mali0
- /dev/mali
- mali_kbase
- kbase
- mali_ioctl
- SELinux: Loaded policy from
- SELinux: Disabled at runtime
- avc: denied
- type=AVC
- kernel panic
- Oops:
- BUG: unable to handle kernel
- Unable to handle kernel paging request
- Internal error: Oops
- ramoops
- pstore
- setenforce 0
- /sys/fs/selinux/enforce
- /proc/modules
- /proc/kallsyms
What your security team should do
- Prioritize patching or firmware updates for all products using Arm Mali Midgard r26p0-r31p0, Bifrost r0p0-r35p0, or Valhall r19p0-r35p0 drivers, especially internet-connected, mobile, kiosk, embedded, or high-value user devices.
- Treat unpatched affected devices as exposed because this vulnerability is in CISA KEV and has active in-the-wild exploitation history; the KEV remediation deadline was 2023-04-20.
- Inventory devices and kernels for Arm Mali GPU usage, including Android fleets, embedded Linux devices, Chromebooks, IoT appliances, and vendor BSP-derived products.
- Where patching is delayed, restrict untrusted application execution, sideloading, debug shells, ADB access, local user accounts, and unnecessary physical or console access.
- Increase monitoring for local privilege-escalation behavior, including suspicious access to Mali GPU device nodes, unexpected root transitions, SELinux/AppArmor policy tampering, kernel crash artifacts, and post-exploitation persistence.
- For devices that no longer receive firmware updates, plan compensating controls, network isolation, reduced data exposure, or hardware replacement.
The record
Arm Mali GPU Kernel Driver allows a non-privileged user to achieve write access to read-only memory pages. This affects Midgard r26p0 through r31p0, Bifrost r0p0 through r35p0, and Valhall r19p0 through r35p0.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Android | :unknown: | SoCVersion:0 | SoCVersion:2023-06-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: