HIGH
uio InfoPointer UAF
CVE-2026-93054
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
KernelScan AI7.0HIGH
01Description
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().
02KernelScan AI Analysis
Risk summary
A local user who can open a UIO device node can race with a failing device registration to trigger a use-after-free on the driver's configuration structure. This can lead to kernel memory corruption, information disclosure, or a crash. The vulnerability requires a UIO device to be present and its registration to fail after the device becomes visible to userspace.
Vulnerability analysis
When a UIO device registration fails after the device has already been made visible to userspace, the error cleanup path leaves a pointer to the caller's configuration structure in place. A process that opened the device during the brief registration window retains a reference to the UIO device and can trigger file operations that follow this now-stale pointer into freed memory. The fix clears the pointer under the device's info lock and notifies any waiting processes before removing the device, so already-open file descriptors see the same 'device gone' state as a normal unregistration. The vulnerability requires local access to a UIO device node and winning a race with a failing device registration, which typically depends on a kernel driver encountering an error during probe.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 4.14 | 4.14.100 | 4.15 | 63eaa7663335 |
| 5.10 | — | 5.10.270 | df4faf65194e |
| 5.15 | — | 5.15.221 | 506b43dde5f9 |
| 6.1 | — | 6.1.188 | 15340b00e665 |
| 6.12 | — | 6.12.110 | 16695e9059d8 |
| 6.18 | — | 6.18.52 | ec5bd6731183 |
| 6.6 | — | 6.6.157 | 234156f6c6d9 |
| 7.2 | — | 7.2.6 | 67b6fc084b03 |
| mainline | — | 7.3 | — |
| cip/5.10 | — | 5.10.271-cip78 | 63eaa7663335 |
| cip/6.1 | — | 6.1.189-cip61 | 506b43dde5f9 |
| cip/6.1-rt | — | 6.1.189-cip61-rt32 | 506b43dde5f9 |
| cip/6.12 | — | 6.12.111-cip32 | 234156f6c6d9 |
04CIP Kernels
State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.
| CIP tree | State |
|---|---|
| cip/6.12 | Fixed in 6.12.111-cip32 |
| cip/6.1 | Fixed in 6.1.189-cip61 |
| cip/6.1-rt | Fixed in 6.1.189-cip61-rt32 |
| cip/5.10 | Fixed in 5.10.271-cip78 |
| cip/5.10-rt | Affected — no CIP fix yet (latest 5.10.268-cip77-rt34) |