VYPR
Unrated severityNVD Advisory· Published Dec 24, 2025· Updated Apr 15, 2026

CVE-2023-54044

CVE-2023-54044

Description

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.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

A missing NULL-check in the Linux kernel's SPMI driver removal path can cause a kernel panic when a driver without a remove callback is unloaded.

Root

Cause The vulnerability is in the Linux kernel's SPMI (System Power Management Interface) bus driver. When the kernel removes an SPMI driver, it unconditionally calls the driver's remove callback. However, some drivers, especially those that rely entirely on devm_ (managed device resource) APIs for allocation and do not require explicit teardown, may not define a remove callback, leaving the function pointer NULL [1][3]. The code in spmi_drv_remove does not check for this case before invoking the callback, leading to a NULL pointer dereference [1].

Exploitation

Context The bug is triggered during normal driver unloading, for example when the qcom_spmi_pmic module is removed. The call trace shows a crash in spmi_drv_remove that propagates through the driver core and module deletion syscall [1]. No special privileges or network access are required — any user or process capable of unloading an SPMI driver (typically root) can trigger the panic. The issue is local and requires the ability to issue a delete_module operation on a vulnerable driver.

Impact

A successful trigger results in a kernel panic, causing a denial of service (DoS) on the system. The crash is completely reproducible on kernels without the fix when an SPMI driver lacking a remove callback is unloaded [1]. The impact is limited to availability; integrity and confidentiality are not directly affected.

Mitigation

The fix adds a simple NULL check before calling the remove callback in spmi_drv_remove [1][3]. Kernel stable branches have backported the patch (commits b56eef3e16d8, 699949219e35, and b95a69214dae) [1][2][3]. Administrators should update to a kernel version containing the fix. No workarounds are available other than avoiding unloading affected SPMI drivers.

AI Insight generated on May 19, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.

Affected products

2

Patches

9

Vulnerability mechanics

Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

9

News mentions

0

No linked articles in our index yet.