CVE-2026-31688

In the Linux kernel, the following vulnerability has been resolved: driver core: enforce device_lock for driver_match_device() Currently, driver_match_device() is called from three sites. One site (__device_attach_driver) holds device_lock(dev), but the other two (bind_store and __driver_attach) do not. This inconsistency means that bus match() callbacks are not guaranteed to be called with the lock held. Fix this by introducing driver_match_device_locked(), which guarantees holding the device lock using a scoped guard. Replace the unlocked calls in bind_store() and __driver_attach() with this new helper. Also add a lock assertion to driver_match_device() to enforce this guarantee. This consistency also fixes a known race condition. The driver_override implementation relies on the device_lock, so the missing lock led to the use-after-free (UAF) reported in Bugzilla for buses using this field. Stress testing the two newly locked paths for 24 hours with CONFIG_PROVE_LOCKING and CONFIG_LOCKDEP enabled showed no UAF recurrence and no lockdep warnings.
Configurations

Configuration 1 (hide)

cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

History

06 May 2026, 18:36

Type Values Removed Values Added
CPE cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
First Time Linux
Linux linux Kernel
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 7.8
CWE CWE-416
References () https://git.kernel.org/stable/c/dc23806a7c47ec5f1293aba407fb69519f976ee0 - () https://git.kernel.org/stable/c/dc23806a7c47ec5f1293aba407fb69519f976ee0 - Patch

27 Apr 2026, 18:16

Type Values Removed Values Added
New CVE

Information

Published : 2026-04-27 18:16

Updated : 2026-05-06 18:36


NVD link : CVE-2026-31688

Mitre link : CVE-2026-31688

CVE.ORG link : CVE-2026-31688


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-416

Use After Free