CVE-2026-53237: Linux mvebu GPIO NULL Pointer Dereference During Suspend/Resume
A NULL pointer dereference vulnerability exists in the Linux kernel's mvebu GPIO driver during system suspend and resume operations. The driver unconditionally calls PWM-related suspend and resume functions for all GPIO banks, but not all banks have PWM functionality. When a GPIO bank without PWM is processed, the code attempts to access memory through a NULL pointer, causing the system to crash. This vulnerability can be triggered by any user with local access to initiate a system suspend, making it a straightforward denial-of-service condition on affected systems.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 5.5 MEDIUM · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
- Weaknesses (CWE)
- CWE-476
- Affected products
- 8 configuration(s)
- Published / Modified
- 2026-06-25 / 2026-07-08
NVD description (verbatim)
In the Linux kernel, the following vulnerability has been resolved: gpio: mvebu: fix NULL pointer dereference in suspend/resume mvebu_pwm_suspend() and mvebu_pwm_resume() are called for all GPIO banks during suspend/resume, but not all banks have PWM functionality. GPIO banks without PWM have mvchip->mvpwm set to NULL. Calling mvebu_pwm_suspend() with mvpwm == NULL causes a NULL pointer dereference when it tries to access mvpwm->blink_select. Unable to handle kernel NULL pointer dereference at virtual address 00000020 when write [00000020] *pgd=00000000 Internal error: Oops: 815 [#1] PREEMPT ARM Modules linked in: CPU: 0 UID: 0 PID: 406 Comm: sh Not tainted 6.12.74-rt12-yocto-standard-g4e96f98fb7db-dirty #353 Hardware name: Marvell Armada 370/XP (Device Tree) PC is at regmap_mmio_read+0x38/0x54 LR is at regmap_mmio_read+0x38/0x54 pc : [<c05fd2ac>] lr : [<c05fd2ac>] psr: 200f0013 sp : f0c11d10 ip : 00000000 fp : c100d2f0 r10: c14fb854 r9 : 00000000 r8 : 00000000 r7 : c1799c00 r6 : 00000020 r5 : 00000020 r4 : c179c7c0 r3 : f0a231a0 r2 : 00000020 r1 : 00000020 r0 : 00000000 Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none Control: 10c5387d Table: 135ec059 DAC: 00000051 Call trace: regmap_mmio_read from _regmap_bus_reg_read+0x78/0xac _regmap_bus_reg_read from _regmap_read+0x60/0x154 _regmap_read from regmap_read+0x3c/0x60 regmap_read from mvebu_gpio_suspend+0xa4/0x14c mvebu_gpio_suspend from dpm_run_callback+0x54/0x180 dpm_run_callback from device_suspend+0x124/0x630 device_suspend from dpm_suspend+0x124/0x270 dpm_suspend from dpm_suspend_start+0x64/0x6c dpm_suspend_start from suspend_devices_and_enter+0x140/0x8e8 suspend_devices_and_enter from pm_suspend+0x2fc/0x308 pm_suspend from state_store+0x6c/0xc8 state_store from kernfs_fop_write_iter+0x10c/0x1f8 kernfs_fop_write_iter from vfs_write+0x270/0x468 vfs_write from ksys_write+0x70/0xf0 ksys_write from ret_fast_syscall+0x0/0x54 Add a NULL check for mvchip->mvpwm before calling the PWM suspend/resume functions.
5 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-53237 is a NULL pointer dereference in the mvebu GPIO driver's suspend/resume path (specifically mvebu_pwm_suspend() and mvebu_pwm_resume() functions). The mvebu_pwm member of the mvchip structure is initialized to NULL for GPIO banks that lack PWM functionality. During system power management transitions, the suspend callback unconditionally invokes these PWM functions without validating that mvchip->mvpwm is non-NULL. The crash occurs when regmap_read() attempts to access the blink_select field through the NULL pointer. The vulnerability is classified as CWE-476 (NULL Pointer Dereference) with a CVSS 3.1 score of 5.5 (MEDIUM severity, AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H), indicating local attack vector, low complexity, low privilege requirement, and availability impact only.
Business impact
This vulnerability enables local denial-of-service attacks against systems using the mvebu GPIO driver. Any user capable of initiating system suspend (typically unprivileged users on desktop/laptop systems, or system administrators on servers) can crash the kernel. For always-on infrastructure, embedded systems, or IoT deployments relying on Marvell Armada 370/XP hardware, unexpected system crashes disrupt availability, degrade service reliability, and may complicate remote management. The low barrier to exploitation amplifies risk in multi-tenant or guest-accessible environments.
Affected systems
The Linux kernel is affected across multiple versions. The vulnerability resides in the mvebu GPIO driver, which supports Marvell Armada 370/XP ARM-based System-on-Chip (SoC) platforms. Any Linux distribution or embedded system running a vulnerable kernel version on these Marvell ARM processors is susceptible. Systems without mvebu GPIO driver support or those using alternative GPIO implementations are not impacted. Verify your kernel version against the vendor advisory to confirm affected releases.
Exploitability
This vulnerability is highly exploitable in local access scenarios. No special privileges are required beyond the ability to trigger a system suspend operation—a capability available to regular users on many systems. No complex exploitation techniques, race conditions, or information leaks are necessary; a simple suspend operation reliably triggers the crash. The attack requires no network access, no special hardware, and no user interaction beyond initiating suspend. Systems where suspend functionality is restricted to privileged users face lower risk, but the ease of exploitation remains a significant concern for general-purpose systems.
Remediation
The fix is straightforward: add a NULL pointer check before invoking mvebu_pwm_suspend() and mvebu_pwm_resume(). The kernel patch validates that mvchip->mvpwm is not NULL before attempting to access PWM-related fields or calling PWM suspend/resume routines. This ensures GPIO banks without PWM functionality safely skip PWM operations during power management transitions. Apply the patched kernel version from your Linux distribution or the upstream kernel repository. Verify the patch has been integrated into your specific kernel branch before deployment.
Patch guidance
Check your Linux distribution's kernel update channels for a patched version incorporating the mvebu GPIO NULL pointer fix. Upstream Linux kernel maintainers have resolved this issue; verify that your kernel version includes the fix commit in the gpio subsystem. If using a custom or vendor-specific kernel, contact your supplier for an updated image. Test the patched kernel in a non-production environment to validate suspend/resume functionality on your Marvell Armada hardware before rolling out to production systems. Document the patched kernel version in your change management system.
Detection guidance
Monitor system logs for kernel oops/panic messages originating from the regmap_mmio_read() or mvebu_gpio_suspend() functions, particularly around system suspend/resume events. Kernel crash dumps will display a call trace matching the one in the CVE description. On systems with kernel crash reporting enabled, capture and analyze dump files for evidence of this specific NULL pointer dereference. If your environment supports kernel module instrumentation, consider adding tracepoint logging to gpio_suspend operations to detect premature failures before they crash the system. Correlation of unexpected reboots with scheduled suspend operations is a practical detection signal.
Why prioritize this
While CVSS 5.5 (MEDIUM) reflects the availability-only impact, the trivial exploitability—requiring no privilege escalation, no special setup, and no user interaction beyond a standard system operation—argues for prompt patching. The combination of ease of exploitation and potential for unexpected infrastructure downtime justifies treating this as a moderate-to-high priority in any environment where mvebu GPIO hardware is deployed and suspend functionality is operational. Prioritize systems where suspend is regularly used (laptops, power-managed servers) over those where suspend is disabled.
Risk score, explained
The CVSS 3.1 score of 5.5 reflects high availability impact (A:H) due to reliable kernel crash, offset by local-only attack surface and low privilege requirement. No confidentiality or integrity impact is possible. The score appropriately captures that while the vulnerability is easy to trigger and guarantees denial-of-service, it does not enable privilege escalation, data theft, or system compromise. Organizations should consider contextual factors: systems in high-availability clusters, always-on production environments, or embedded deployments face greater business risk than the raw CVSS suggests.
Frequently asked questions
Which Marvell platforms are affected?
Systems using Marvell Armada 370/XP ARM-based processors with the mvebu GPIO driver are affected. This includes certain NAS devices, routers, and embedded systems. Consult your hardware vendor's support documentation or kernel configuration to confirm use of the mvebu driver.
Can this be exploited remotely?
No. This vulnerability requires local access to trigger a system suspend operation. Remote attackers cannot exploit it without first gaining local shell access or equivalent privilege on the target system.
Do all GPIO banks on mvebu hardware have PWM support?
No. The vulnerability exists specifically because some GPIO banks lack PWM functionality (mvpwm is NULL for those banks). The fix ensures suspend/resume operations handle both PWM-capable and PWM-less banks correctly.
If my system never enters suspend, am I affected?
If suspend functionality is disabled or never used, this particular code path is not exercised during normal operation. However, for robustness and to address potential future use of suspend, applying the patch is recommended.
This analysis is provided for informational purposes based on the CVE description and ground-truth data available as of the publication date. Specific patch versions, affected kernel releases, and availability of updates vary by Linux distribution and vendor. Always verify affected product versions and patch status against official vendor advisories and your distribution's security update channels before making patching decisions. SEC.co makes no warranty regarding the completeness or accuracy of this analysis or its suitability for any particular deployment. Consult your kernel maintainer, distribution vendor, or hardware manufacturer for guidance specific to your environment. Source: NVD (public-domain), retrieved 2026-08-03. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2025-71313MEDIUMLinux Kernel PCI Endpoint NULL Pointer Dereference
- CVE-2026-46118MEDIUMLinux Kernel PAPR Hypervisor Pipe Null Pointer Dereference (POWER Systems)
- CVE-2026-46127MEDIUMLinux Kernel OCRDMA Null Pointer Dereference (DoS)
- CVE-2026-46134MEDIUMLinux Kernel cros_ec Mutex Initialization DoS Vulnerability
- CVE-2026-46188MEDIUMLinux Octeon EP VF NULL Pointer Dereference Denial of Service
- CVE-2026-46211MEDIUMLinux Kernel MSM DRM NULL Pointer and Silent Error in gem_info_get_metadata
- CVE-2026-46216MEDIUMLinux Intel Arc GPU NULL Pointer Dereference (HDCP)
- CVE-2026-46222MEDIUMLinux Rockchip RKCam Driver Null Pointer Dereference