uio: Fix stale info pointer in failed registration path
Published Sep 17, 2026
7.0
HIGHCVSS 3.1
EPSS 0.16%
Description
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 products
-
- Version StatusaffectedConstraints-
- Version StatusaffectedConstraints
- Version StatusaffectedConstraints
- Version StatusaffectedConstraints
- Version StatusaffectedConstraints
- Version StatusaffectedConstraints
- Version StatusaffectedConstraints
- Version StatusaffectedConstraints
- Version StatusaffectedConstraints
- Version
-
- Version 4.14.100StatusaffectedConstraints<4.15
- Version
-
- Version 4.18StatusaffectedConstraints-
- Version 0StatusunaffectedConstraints<4.18
- Version 5.10.270StatusunaffectedConstraints<=5.10.*
- Version 5.15.221StatusunaffectedConstraints<=5.15.*
- Version 6.1.188StatusunaffectedConstraints<=6.1.*
- Version 6.12.110StatusunaffectedConstraints<=6.12.*
- Version 6.18.52StatusunaffectedConstraints<=6.18.*
- Version 6.6.157StatusunaffectedConstraints<=6.6.*
- Version 7.2.6StatusunaffectedConstraints<=7.2.*
- Version 7.3-rc1StatusunaffectedConstraints<=*
- Version
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | |||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Linux | Linux | unaffected |
| |||||||||||||||||||||||||||||||||
| Linux | Linux | unaffected |
| |||||||||||||||||||||||||||||||||
| Linux | Linux | affected |
|
No data.
No data.
No Red Hat product state for this CVE.
No package ranges for this CVE.
Remediation
No remediation recorded yet.
No CWE recorded.
References (9)
- https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-82164 Advisory
- https://git.kernel.org/stable/c/15340b00e665af805523b08515294a1aa1778151
- https://git.kernel.org/stable/c/16695e9059d80ea6661e8399064b0c01f641dd8c
- https://git.kernel.org/stable/c/234156f6c6d9ec35dc47abbcc3adc3c79fc6a5ac
- https://git.kernel.org/stable/c/506b43dde5f9ac0068b1360e6b5dbee07fda59fb
- https://git.kernel.org/stable/c/63eaa7663335d482a8825c231213e312cacea567
- https://git.kernel.org/stable/c/67b6fc084b034a91c3ec7907a3fed89a2450f30b
- https://git.kernel.org/stable/c/df4faf65194ec6c315a59be4c6749eaeb3009243
- https://git.kernel.org/stable/c/ec5bd6731183eb6f619140c9bef2ee11ed818c20
Change history (0)
No recorded changes yet.