CVE-2026-93054

Summary

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

uio: Fix stale info pointer in failed registration path

After device_add(), the UIO device is visible to userspace and /dev/uioX can be opened. If a later setup step fails, __uio_register_device() unwinds the device but leaves idev->info pointing at the caller-owned struct uio_info.

That is unsafe when an opener races with the failed registration path. The open file keeps a reference to the uio_device, while the caller sees registration failure and may free its struct uio_info. Later file operations can then follow idev->info and dereference freed memory.

Handle post-device_add() failures like unregister: remove UIO attributes while the info pointer is still valid, then clear idev->info under info_lock and wake existing waiters/async users before removing the device and minor. This makes already-open file descriptors observe the same "device gone" state as normal uio_unregister_device().

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxa93e7b331568227500186a465fee3c2cb5dffd1f < 63eaa7663335d482a8825c231213e312cacea567affected
LinuxLinuxa93e7b331568227500186a465fee3c2cb5dffd1f < df4faf65194ec6c315a59be4c6749eaeb3009243affected
LinuxLinuxa93e7b331568227500186a465fee3c2cb5dffd1f < 506b43dde5f9ac0068b1360e6b5dbee07fda59fbaffected
LinuxLinuxa93e7b331568227500186a465fee3c2cb5dffd1f < 15340b00e665af805523b08515294a1aa1778151affected
LinuxLinuxa93e7b331568227500186a465fee3c2cb5dffd1f < 234156f6c6d9ec35dc47abbcc3adc3c79fc6a5acaffected
LinuxLinuxa93e7b331568227500186a465fee3c2cb5dffd1f < 16695e9059d80ea6661e8399064b0c01f641dd8caffected
LinuxLinuxa93e7b331568227500186a465fee3c2cb5dffd1f < ec5bd6731183eb6f619140c9bef2ee11ed818c20affected
LinuxLinuxa93e7b331568227500186a465fee3c2cb5dffd1f < 67b6fc084b034a91c3ec7907a3fed89a2450f30baffected
LinuxLinux085d735c858934e5d5bfaedb1fc98bd9135e6ff1affected
LinuxLinux4.14.100 < 4.15affected
LinuxLinux4.18affected
LinuxLinux0 < 4.18unaffected
LinuxLinux5.10.270 <= 5.10.*unaffected
LinuxLinux5.15.221 <= 5.15.*unaffected
LinuxLinux6.1.188 <= 6.1.*unaffected
LinuxLinux6.6.157 <= 6.6.*unaffected
LinuxLinux6.12.110 <= 6.12.*unaffected
LinuxLinux6.18.52 <= 6.18.*unaffected
LinuxLinux7.2.6 <= 7.2.*unaffected
LinuxLinux7.3-rc1 <= *unaffected

Weaknesses

References