CVE-2025-37901: irqchip/qcom-mpm: Prevent crash when trying to handle non-wake GPIOs
In the Linux kernel, the following vulnerability has been resolved:
irqchip/qcom-mpm: Prevent crash when trying to handle non-wake GPIOs
On Qualcomm chipsets not all GPIOs are wakeup capable. Those GPIOs do not
have a corresponding MPM pin and should not be handled inside the MPM
driver. The IRQ domain hierarchy is always applied, so it's required to
explicitly disconnect the hierarchy for those. The pinctrl-msm driver marks
these with GPIO_NO_WAKE_IRQ. qcom-pdc has a check for this, but
irq-qcom-mpm is currently missing the check. This is causing crashes when
setting up interrupts for non-wake GPIOs:
root@rb1:~# gpiomon -c gpiochip1 10
irq: IRQ159: trimming hierarchy from :soc@0:interrupt-controller@f200000-1
Unable to handle kernel paging request at virtual address ffff8000a1dc3820
Hardware name: Qualcomm Technologies, Inc. Robotics RB1 (DT)
pc : mpm_set_type+0x80/0xcc
lr : mpm_set_type+0x5c/0xcc
Call trace:
mpm_set_type+0x80/0xcc (P)
qcom_mpm_set_type+0x64/0x158
irq_chip_set_type_parent+0x20/0x38
msm_gpio_irq_set_type+0x50/0x530
__irq_set_trigger+0x60/0x184
__setup_irq+0x304/0x6bc
request_threaded_irq+0xc8/0x19c
edge_detector_setup+0x260/0x364
linereq_create+0x420/0x5a8
gpio_ioctl+0x2d4/0x6c0
Fix this by copying the check for GPIO_NO_WAKE_IRQ from qcom-pdc.c, so that
MPM is removed entirely from the hierarchy for non-wake GPIOs.
Security readout for executives and security teams
Plain-English summary
A Linux kernel defect can crash certain Qualcomm-based systems when software configures an interrupt on a GPIO that cannot wake the device. Successful triggering requires local access and low privileges according to the supplied CVSS vector. The demonstrated consequence is a kernel crash, creating availability and operational risk for affected embedded, robotics, mobile, or appliance deployments.
Executive priority
Prioritize exposed Qualcomm-based production devices where local users, applications, or services can manipulate GPIOs. Accelerate remediation for safety-sensitive, high-availability, or remotely administered appliances. Broader Linux fleets should first confirm hardware and driver applicability. There is no supplied evidence of active exploitation, so urgency should be driven by exposure and outage consequences.
Technical view
The Qualcomm MPM interrupt driver failed to remove non-wake GPIOs, marked GPIO_NO_WAKE_IRQ, from the IRQ hierarchy. Interrupt setup could consequently reach mpm_set_type with an invalid mapping and cause a kernel paging fault. The correction applies the existing qcom-pdc-style check and disconnects MPM from the hierarchy. The supplied evidence demonstrates a crash, not data theft or modification.
Likely exposure
Exposure is limited to Linux systems using affected Qualcomm chipsets, the qcom-mpm driver, and non-wake-capable GPIO interrupt handling. Systems without that hardware or driver path are unlikely to be exposed. The supplied version data is ambiguous, so distribution kernel advisories and backport status should determine applicability rather than version strings alone.
Exploitation context
The CVSS 3.1 vector is local, low-complexity, low-privilege, and requires no user interaction. The bundle includes a reproducible crash trace, but no evidence of active exploitation; the CVE is not listed as KEV. Although CVSS assigns high confidentiality, integrity, and availability impacts, the supplied technical description only substantiates a kernel crash.
Researcher notes
The vulnerable path concerns IRQ-domain hierarchy handling for GPIO_NO_WAKE_IRQ pins. Referenced Linux stable commits implement the correction across maintained branches. The flattened affected-version list does not clearly express introduced and fixed boundaries; validate exact branch and distributor backport status. Assess privilege boundaries around GPIO character devices, but treat the provided crash as the only demonstrated impact.
Mitigation direction
Install a vendor-supported kernel containing the applicable stable fix or backport.
Confirm remediation guidance and fixed package versions with the Linux distribution or device vendor.
Until patched, restrict untrusted local access to GPIO interfaces on potentially affected systems.
Avoid configuring interrupts for known non-wake GPIOs where operationally feasible.
Validation and detection
Inventory Qualcomm-based devices and identify kernels loading or compiling the qcom-mpm driver.
Compare kernel packages and vendor backports against the referenced stable commits.
Determine whether local users or services can access GPIO interfaces on affected devices.
Review kernel logs for paging faults involving mpm_set_type or qcom_mpm_set_type.
Do not reproduce the trigger on production systems because it may crash the kernel.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2025-37901 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
1ADP providers
7Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.