CVE-2026-23186

Source
https://cve.org/CVERecord?id=CVE-2026-23186
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-23186.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-23186
Downstream
Published
2026-02-14T16:27:15.505Z
Modified
2026-02-14T20:12:10.808397Z
Summary
hwmon: (acpi_power_meter) Fix deadlocks related to acpi_power_meter_notify()
Details

In the Linux kernel, the following vulnerability has been resolved:

hwmon: (acpipowermeter) Fix deadlocks related to acpipowermeter_notify()

The acpipowermeter driver's .notify() callback function, acpipowermeternotify(), calls hwmondevice_unregister() under a lock that is also acquired by callbacks in sysfs attributes of the device being unregistered which is prone to deadlocks between sysfs access and device removal.

Address this by moving the hwmon device removal in acpipowermeternotify() outside the lock in question, but notice that doing it alone is not sufficient because two concurrent METERNOTIFYCONFIG notifications may be attempting to remove the same device at the same time. To prevent that from happening, add a new lock serializing the execution of the switch () statement in acpipowermeternotify(). For simplicity, it is a static mutex which should not be a problem from the performance perspective.

The new lock also allows the hwmondeviceregisterwithinfo() in acpipowermeternotify() to be called outside the inner lock because it prevents the other notifications handled by that function from manipulating the "resource" object while the hwmon device based on it is being registered. The sending of ACPI netlink messages from acpipowermeternotify() is serialized by the new lock too which generally helps to ensure that the order of handling firmware notifications is the same as the order of sending netlink messages related to them.

In addition, notice that hwmondeviceregisterwithinfo() may fail in which case resource->hwmondev will become an error pointer, so add checks to avoid attempting to unregister the hwmon device pointer to by it in that case to acpipowermeternotify() and acpipowermeter_remove().

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/23xxx/CVE-2026-23186.json",
    "cna_assigner": "Linux"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
16746ce8adfe04f9ff8df75c1133286ba93c0e17
Fixed
8860ddf0e07be37169d4ef9f2618e39fca934a66
Fixed
615901b57b7ef8eb655f71358f7e956e42bcd16b

Affected versions

v6.*
v6.14
v6.14-rc2
v6.14-rc3
v6.14-rc4
v6.14-rc5
v6.14-rc6
v6.14-rc7
v6.15
v6.15-rc1
v6.15-rc2
v6.15-rc3
v6.15-rc4
v6.15-rc5
v6.15-rc6
v6.15-rc7
v6.16
v6.16-rc1
v6.16-rc2
v6.16-rc3
v6.16-rc4
v6.16-rc5
v6.16-rc6
v6.16-rc7
v6.17
v6.17-rc1
v6.17-rc2
v6.17-rc3
v6.17-rc4
v6.17-rc5
v6.17-rc6
v6.17-rc7
v6.18
v6.18-rc1
v6.18-rc2
v6.18-rc3
v6.18-rc4
v6.18-rc5
v6.18-rc6
v6.18-rc7
v6.18.1
v6.18.2
v6.18.3
v6.18.4
v6.18.5
v6.18.6
v6.18.7
v6.18.8
v6.18.9
v6.19-rc1
v6.19-rc2
v6.19-rc3
v6.19-rc4
v6.19-rc5

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-23186.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.15.0
Fixed
6.18.10

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-23186.json"