Cloudanix VulnDB

CVE-2023-54044

None

CVSS

—

EPSS

0.3%

Published

Dec 24, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A bug in the Linux kernel can make the system crash when certain hardware drivers are removed, so updating the kernel prevents these unexpected shutdowns.

Exploitation
Local Privilege
Attacker needs
High Privilege
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 panic in spmi_drv_remove when an SPMI driver lacking a remove callback is unregistered, triggered via device_release_driver_internal during module unload.

Why it matters to the business

Unloading affected kernel modules can cause immediate system crashes and downtime; organizations running custom or vendor SPMI drivers on Linux kernels face elevated operational risk until patched.

How an attack unfolds

An attacker with sufficient privileges to unload a vulnerable SPMI driver module (such as qcom_spmi_pmic) triggers the removal path; the kernel calls spmi_drv_remove without checking for a remove callback, dereferences a NULL function pointer, and panics.

How to fix it

Update to a kernel containing commit b95a69214daea4aab1c8bad96571d988a62e2c97 or later; for Chainguard images upgrade mattermost-10.3 and mattermost-10.3-compat to 10.3.4-r9 or newer.

How to confirm the fix worked

Confirm the presence of the guard checking for a remove callback in spmi_drv_remove; verify kernel version or git commit b95a69214daea4aab1c8bad96571d988a62e2c97 is applied.

Typical attack path

  1. Obtain local access or code execution allowing module unload
  2. Invoke rmmod or delete_module on the target SPMI driver
  3. Kernel executes spmi_drv_remove without callback guard
  4. NULL dereference occurs leading to panic and denial of service

How to detect it

Search kernel logs and crash dumps for the stack trace containing spmi_drv_remove, device_release_driver_internal, driver_detach, and __do_sys_delete_module; correlate with module unload timestamps.

  • spmi_drv_remove+0x16c/0x1e0
  • dump_backtrace.cfi_jt+0x0/0x8
  • __do_sys_delete_module+0x3ec/0x53c
  • qcom_spmi_pmic

What your security team should do

  • Prioritize kernel updates containing the referenced commit on all affected systems
  • Audit custom SPMI drivers for explicit remove callbacks or devm_ resource usage
  • Monitor module unload events in production environments until patches are deployed

The record

In the Linux kernel, the following vulnerability has been resolved: spmi: Add a check for remove callback when removing a SPMI driver When removing a SPMI driver, there can be a crash due to NULL pointer dereference if it does not have a remove callback defined. This is one such call trace observed when removing the QCOM SPMI PMIC driver: dump_backtrace.cfi_jt+0x0/0x8 dump_stack_lvl+0xd8/0x16c panic+0x188/0x498 __cfi_slowpath+0x0/0x214 __cfi_slowpath+0x1dc/0x214 spmi_drv_remove+0x16c/0x1e0 device_release_driver_internal+0x468/0x79c driver_detach+0x11c/0x1a0 bus_remove_driver+0xc4/0x124 driver_unregister+0x58/0x84 cleanup_module+0x1c/0xc24 [qcom_spmi_pmic] __do_sys_delete_module+0x3ec/0x53c __arm64_sys_delete_module+0x18/0x28 el0_svc_common+0xdc/0x294 el0_svc+0x38/0x9c el0_sync_handler+0x8c/0xf0 el0_sync+0x1b4/0x1c0 If a driver has all its resources allocated through devm_() APIs and does not need any other explicit cleanup, it would not require a remove callback to be defined. Hence, add a check for remove callback presence before calling it when removing a SPMI driver.

Affected packages

Ecosystem Package Introduced Fixed
Linux Kernel 3.15.0 4.14.315
SUSE:Linux Enterprise Micro 5.5 kernel-rt 0 5.14.21-150500.13.118.1
SUSE:Linux Enterprise Micro 5.5 kernel-source-rt 0 5.14.21-150500.13.118.1

Related vulnerabilities