Cloudanix VulnDB

CVE-2025-37972

None

CVSS

—

EPSS

0.2%

Published

May 20, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A flaw in certain Linux kernel input handling code can cause devices to crash unexpectedly if a hardware button is not connected, requiring an update to prevent failures.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Low
Impact
Denial Of Service
Component
OS kernel
Class
Memory Corruption
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Null pointer dereference occurs in mtk_pmic_keys_probe when the device tree lacks a button node on floating hardware, causing the driver to attempt dereference of an unset regs parameter during initialization.

Why it matters to the business

Kernel instability or crash on affected embedded devices can lead to boot failures, loss of input functionality, and unplanned downtime requiring urgent patching across fleets.

How an attack unfolds

An attacker with local access or ability to influence device tree configuration triggers the probe path on hardware missing the button node, causing the null dereference and potential kernel panic or memory corruption that could be chained into privilege escalation.

How to fix it

Update the Linux kernel to the fixed commit 334d74a798463ceec02a41eb0e2354aaac0d6249 or apply the equivalent stable backport; rebuild and deploy the updated kernel image to all affected devices.

How to confirm the fix worked

Confirm the presence of the fix commit in the running kernel source or binary; test device tree configurations with and without the button node to verify no dereference occurs on probe.

Typical attack path

  1. Identify or configure target hardware lacking the pmic-keys button node in device tree
  2. Load or trigger the mtk-pmic-keys driver module during boot or runtime
  3. Trigger null dereference in probe function
  4. Exploit resulting memory corruption for denial of service or further escalation

How to detect it

Review kernel logs for oops or null pointer dereference messages during driver probe; inspect dmesg output and device tree blobs on affected systems for missing button nodes.

What your security team should do

  • Prioritize kernel updates on all devices using mtk-pmic-keys driver
  • Audit device trees for floating button configurations before deployment
  • Monitor for kernel oops or panic logs related to input subsystem
  • Test patched kernels in staging environments matching production hardware

The record

In the Linux kernel, the following vulnerability has been resolved: Input: mtk-pmic-keys - fix possible null pointer dereference In mtk_pmic_keys_probe, the regs parameter is only set if the button is parsed in the device tree. However, on hardware where the button is left floating, that node will most likely be removed not to enable that input. In that case the code will try to dereference a null pointer. Let's use the regs struct instead as it is defined for all supported platforms. Note that it is ok setting the key reg even if that latter is disabled as the interrupt won't be enabled anyway.

Affected packages

Ecosystem Package Introduced Fixed
Debian:11 linux-6.1 0 6.1.140-1~deb11u1
Debian:12 linux 0 6.1.140-1
Debian:13 linux 0 No fix
Debian:13 linux 0 6.12.29-1
Debian:14 linux 0 6.12.29-1
Linux Kernel 6.0.0 6.1.139
Mageia:9 dwarves 0 1.30-1.mga9
Mageia:9 kernel 0 6.6.93-1.mga9
Mageia:9 kernel-firmware 0 20250509-1.mga9
Mageia:9 kernel-firmware-nonfree 0 20250509-1.mga9.nonfree
Mageia:9 kernel-linus 0 6.6.93-1.mga9
Mageia:9 kmod-virtualbox 0 7.1.8-3.mga9
Mageia:9 kmod-xtables-addons 0 3.24-80.mga9
Mageia:9 libtraceevent 0 1.8.4-1.mga9
Mageia:9 libtracefs 0 1.8.2-1.mga9
Mageia:9 radeon-firmware 0 20250509-1.mga9.nonfree
Mageia:9 wireless-regdb 0 20250220-1.mga9
SUSE:Linux Enterprise High Availability Extension 15 SP6 kernel-default 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-default 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_11 0 1-150600.1.3.2
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_12 0 1-150600.13.3.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-64kb 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default-base 0 6.4.0-150600.23.53.1.150600.12.24.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-source 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-zfcpdump 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-coco 0 6.4.0-15061.28.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-coco_debug 0 6.4.0-15061.28.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-source-coco 0 6.4.0-15061.28.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-syms-coco 0 6.4.0-15061.28.coco15sp6.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-docs 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-obs-build 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-source 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-syms 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise Module for Legacy 15 SP6 kernel-default 0 6.4.0-150600.23.53.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-azure 0 6.4.0-150600.8.40.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-source-azure 0 6.4.0-150600.8.40.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-syms-azure 0 6.4.0-150600.8.40.1
SUSE:Linux Enterprise Workstation Extension 15 SP6 kernel-default 0 6.4.0-150600.23.53.1
SUSE:Real Time Module 15 SP6 kernel-rt 0 6.4.0-150600.10.39.1
SUSE:Real Time Module 15 SP6 kernel-rt_debug 0 6.4.0-150600.10.39.1
SUSE:Real Time Module 15 SP6 kernel-source-rt 0 6.4.0-150600.10.39.1
SUSE:Real Time Module 15 SP6 kernel-syms-rt 0 6.4.0-150600.10.39.1
openSUSE:Leap 15.6 dtb-aarch64 0 6.4.0-150600.23.53.1
openSUSE:Leap 15.6 kernel-64kb 0 6.4.0-150600.23.53.1
openSUSE:Leap 15.6 kernel-azure 0 6.4.0-150600.8.40.1
openSUSE:Leap 15.6 kernel-debug 0 6.4.0-150600.23.53.1
openSUSE:Leap 15.6 kernel-default 0 6.4.0-150600.23.53.1
openSUSE:Leap 15.6 kernel-default-base 0 6.4.0-150600.23.53.1.150600.12.24.1
openSUSE:Leap 15.6 kernel-docs 0 6.4.0-150600.23.53.1
openSUSE:Leap 15.6 kernel-kvmsmall 0 6.4.0-150600.23.53.1
openSUSE:Leap 15.6 kernel-obs-build 0 6.4.0-150600.23.53.1
openSUSE:Leap 15.6 kernel-obs-qa 0 6.4.0-150600.23.53.1
openSUSE:Leap 15.6 kernel-rt 0 6.4.0-150600.10.39.1
openSUSE:Leap 15.6 kernel-rt_debug 0 6.4.0-150600.10.39.1
openSUSE:Leap 15.6 kernel-source 0 6.4.0-150600.23.53.1
openSUSE:Leap 15.6 kernel-source-azure 0 6.4.0-150600.8.40.1
openSUSE:Leap 15.6 kernel-source-rt 0 6.4.0-150600.10.39.1
openSUSE:Leap 15.6 kernel-syms 0 6.4.0-150600.23.53.1
openSUSE:Leap 15.6 kernel-syms-azure 0 6.4.0-150600.8.40.1
openSUSE:Leap 15.6 kernel-syms-rt 0 6.4.0-150600.10.39.1
openSUSE:Leap 15.6 kernel-zfcpdump 0 6.4.0-150600.23.53.1

Related vulnerabilities