uio: Fix use-after-free in uio_open
core-1 core-2
-------------------------------------------------------
uio_unregister_device uio_open
idev = idr_find()
device_unregister(&idev->dev)
put_device(&idev->dev)
uio_device_release
get_device(&idev->dev)
kfree(idev)
uio_free_minor(minor)
uio_release
put_device(&idev->dev)
kfree(idev)
-------------------------------------------------------
In the core-1 uio_unregister_device(), the device_unregister will kfree
idev when the idev->dev kobject ref is 1. But after core-1
device_unregister, put_device and before doing kfree, the core-2 may
get_device. Then:
1. After core-1 kfree idev, the core-2 will do use-after-free for idev.
2. When core-2 do uio_release and put_device, the idev will be double
freed.
To address this issue, we can get idev atomic & inc idev reference with
minor_lock.
Metrics
Affected Vendors & Products
| Source | ID | Title |
|---|---|---|
Debian DLA |
DLA-3840-1 | linux security update |
Debian DLA |
DLA-3841-1 | linux-5.10 security update |
Ubuntu USN |
USN-6688-1 | Linux kernel (OEM) vulnerabilities |
Ubuntu USN |
USN-6724-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6724-2 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6725-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6725-2 | Linux kernel (AWS) vulnerabilities |
Ubuntu USN |
USN-6726-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6726-2 | Linux kernel (IoT) vulnerabilities |
Ubuntu USN |
USN-6726-3 | Linux kernel (Xilinx ZynqMP) vulnerabilities |
Ubuntu USN |
USN-6777-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-6777-2 | Linux kernel (Azure) vulnerabilities |
Ubuntu USN |
USN-6777-3 | Linux kernel (GCP) vulnerabilities |
Ubuntu USN |
USN-6777-4 | Linux kernel (HWE) vulnerabilities |
Solution
No solution given by the vendor.
Workaround
No workaround given by the vendor.
Fri, 27 Dec 2024 16:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
|
Fri, 22 Nov 2024 12:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
|
Mon, 04 Nov 2024 13:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
|
Tue, 24 Sep 2024 11:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| CPEs | cpe:/a:redhat:enterprise_linux:9 cpe:/o:redhat:enterprise_linux:9 cpe:/o:redhat:rhel_eus:8.8 |
Wed, 11 Sep 2024 13:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
Tue, 13 Aug 2024 23:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Redhat rhel Aus
Redhat rhel E4s Redhat rhel Tus |
|
| CPEs | cpe:/o:redhat:rhel_aus:8.6 cpe:/o:redhat:rhel_e4s:8.6 cpe:/o:redhat:rhel_tus:8.6 |
|
| Vendors & Products |
Redhat rhel Aus
Redhat rhel E4s Redhat rhel Tus |
Status: PUBLISHED
Assigner: Linux
Published:
Updated: 2025-05-04T12:49:00.841Z
Reserved: 2024-02-20T12:30:33.291Z
Link: CVE-2023-52439
Updated: 2024-12-27T16:03:00.894Z
Status : Modified
Published: 2024-02-20T21:15:08.213
Modified: 2024-12-27T16:15:23.080
Link: CVE-2023-52439
OpenCVE Enrichment
No data.
Debian DLA
Ubuntu USN