virtio-mmio: don't break lifecycle of vm_dev
vm_dev has a separate lifecycle because it has a 'struct device'
embedded. Thus, having a release callback for it is correct.
Allocating the vm_dev struct with devres totally breaks this protection,
though. Instead of waiting for the vm_dev release callback, the memory
is freed when the platform_device is removed. Resulting in a
use-after-free when finally the callback is to be called.
To easily see the problem, compile the kernel with
CONFIG_DEBUG_KOBJECT_RELEASE and unbind with sysfs.
The fix is easy, don't use devres in this case.
Found during my research about object lifetime problems.
Analysis and contextual insights are available on OpenCVE Cloud.
No solution or workaround provided in the CVE record.
Additional remediation guidance may be available on OpenCVE Cloud.
Tracking
Sign in to view the affected projects.
| Source | ID | Title |
|---|---|---|
EUVD |
EUVD-2025-31882 |
Fri, 06 Nov 2026 19:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
Mon, 26 Jan 2026 20:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Weaknesses | CWE-416 | |
| CPEs | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:4.15:-:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:4.15:rc3:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:4.15:rc4:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:4.15:rc5:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:4.15:rc6:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:4.15:rc7:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:4.15:rc8:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:4.15:rc9:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:6.5:rc1:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:6.5:rc2:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:6.5:rc3:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:6.5:rc4:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:6.5:rc5:*:*:*:*:*:* cpe:2.3:o:linux:linux_kernel:6.5:rc6:*:*:*:*:*:* |
|
| Metrics |
cvssV3_1
|
cvssV3_1
|
Thu, 02 Oct 2025 09:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Linux
Linux linux Kernel |
|
| Vendors & Products |
Linux
Linux linux Kernel |
Thu, 02 Oct 2025 00:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
| |
| Metrics |
threat_severity
|
cvssV3_1
|
Wed, 01 Oct 2025 12:00:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | In the Linux kernel, the following vulnerability has been resolved: virtio-mmio: don't break lifecycle of vm_dev vm_dev has a separate lifecycle because it has a 'struct device' embedded. Thus, having a release callback for it is correct. Allocating the vm_dev struct with devres totally breaks this protection, though. Instead of waiting for the vm_dev release callback, the memory is freed when the platform_device is removed. Resulting in a use-after-free when finally the callback is to be called. To easily see the problem, compile the kernel with CONFIG_DEBUG_KOBJECT_RELEASE and unbind with sysfs. The fix is easy, don't use devres in this case. Found during my research about object lifetime problems. | |
| Title | virtio-mmio: don't break lifecycle of vm_dev | |
| References |
|
|
Status: PUBLISHED
Assigner: Linux
Published:
Updated: 2026-11-05T20:31:12.860Z
Reserved: 2025-10-01T11:39:39.406Z
Link: CVE-2023-53515
Updated: 2026-11-05T20:22:53.339Z
Status : Analyzed
Published: 2025-10-01T12:15:55.583
Modified: 2026-11-05T21:17:24.120
Link: CVE-2023-53515
OpenCVE Enrichment
Updated: 2025-10-02T08:38:34Z
EUVD