← Back to CVE List
CVE-2026-93054NVD
Vulnerability 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().
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().
CVSS v3.1 Base Metrics — Score 7.0 (HIGH)
Attack VectorLocal
Attack ComplexityHigh
Privileges RequiredLow
User InteractionNone
ScopeUnchanged
ConfidentialityHigh
IntegrityHigh
AvailabilityHigh
Affected & Patched Versions
- Linux Linux >= a93e7b331568227500186a465fee3c2cb5dffd1f and < 63eaa7663335d482a8825c231213e312cacea567
- Linux Linux >= a93e7b331568227500186a465fee3c2cb5dffd1f and < df4faf65194ec6c315a59be4c6749eaeb3009243
- Linux Linux >= a93e7b331568227500186a465fee3c2cb5dffd1f and < 506b43dde5f9ac0068b1360e6b5dbee07fda59fb
- Linux Linux >= a93e7b331568227500186a465fee3c2cb5dffd1f and < 15340b00e665af805523b08515294a1aa1778151
- Linux Linux >= a93e7b331568227500186a465fee3c2cb5dffd1f and < 234156f6c6d9ec35dc47abbcc3adc3c79fc6a5ac
- Linux Linux >= a93e7b331568227500186a465fee3c2cb5dffd1f and < 16695e9059d80ea6661e8399064b0c01f641dd8c
- Linux Linux >= a93e7b331568227500186a465fee3c2cb5dffd1f and < ec5bd6731183eb6f619140c9bef2ee11ed818c20
- Linux Linux >= a93e7b331568227500186a465fee3c2cb5dffd1f and < 67b6fc084b034a91c3ec7907a3fed89a2450f30b
- Linux Linux >= 085d735c858934e5d5bfaedb1fc98bd9135e6ff1
- Linux Linux >= 4.14.100 and < 4.15
- Linux Linux >= 4.18
- Linux Linux 63eaa7663335d482a8825c231213e312cacea567
- Linux Linux df4faf65194ec6c315a59be4c6749eaeb3009243
- Linux Linux 506b43dde5f9ac0068b1360e6b5dbee07fda59fb
- Linux Linux 15340b00e665af805523b08515294a1aa1778151
- Linux Linux 234156f6c6d9ec35dc47abbcc3adc3c79fc6a5ac
- Linux Linux 16695e9059d80ea6661e8399064b0c01f641dd8c
- Linux Linux ec5bd6731183eb6f619140c9bef2ee11ed818c20
- Linux Linux 67b6fc084b034a91c3ec7907a3fed89a2450f30b
- Linux Linux 4.15
External References
- https://git.kernel.org/stable/c/63eaa7663335d482a8825c231213e312cacea567
- https://git.kernel.org/stable/c/df4faf65194ec6c315a59be4c6749eaeb3009243
- https://git.kernel.org/stable/c/506b43dde5f9ac0068b1360e6b5dbee07fda59fb
- https://git.kernel.org/stable/c/15340b00e665af805523b08515294a1aa1778151
- https://git.kernel.org/stable/c/234156f6c6d9ec35dc47abbcc3adc3c79fc6a5ac
- https://git.kernel.org/stable/c/16695e9059d80ea6661e8399064b0c01f641dd8c
- https://git.kernel.org/stable/c/ec5bd6731183eb6f619140c9bef2ee11ed818c20
- https://git.kernel.org/stable/c/67b6fc084b034a91c3ec7907a3fed89a2450f30b