CVE-2023-53515

EUVD-2025-32745
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.
ProviderTypeBase ScoreAtk. VectorAtk. ComplexityPriv. RequiredVector
NISTPrimary
7.8 HIGH
LOCAL
LOW
LOW
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Base Score
CVSS 3.x
EPSS Score
Percentile: 5%
Affected Products (NVD)
VendorProductVersion
linuxlinux_kernel
4.15.1 ≤
𝑥
< 4.19.293
linuxlinux_kernel
4.20 ≤
𝑥
< 5.4.255
linuxlinux_kernel
5.5 ≤
𝑥
< 5.10.192
linuxlinux_kernel
5.11 ≤
𝑥
< 5.15.128
linuxlinux_kernel
5.16 ≤
𝑥
< 6.1.47
linuxlinux_kernel
6.2 ≤
𝑥
< 6.4.12
linuxlinux_kernel
4.15
linuxlinux_kernel
4.15:rc3
linuxlinux_kernel
4.15:rc4
linuxlinux_kernel
4.15:rc5
linuxlinux_kernel
4.15:rc6
linuxlinux_kernel
4.15:rc7
linuxlinux_kernel
4.15:rc8
linuxlinux_kernel
4.15:rc9
linuxlinux_kernel
6.5:rc1
linuxlinux_kernel
6.5:rc2
linuxlinux_kernel
6.5:rc3
linuxlinux_kernel
6.5:rc4
linuxlinux_kernel
6.5:rc5
linuxlinux_kernel
6.5:rc6
𝑥
= Vulnerable software versions
Debian logo
Debian Releases
Debian Product
Codename
linux
bookworm
6.1.148-1
fixed
bookworm (security)
6.1.153-1
fixed
bullseye
5.10.223-1
fixed
bullseye (security)
5.10.237-1
fixed
forky
6.16.8-1
fixed
sid
6.16.9-1
fixed
trixie
6.12.43-1
fixed
trixie (security)
6.12.48-1
fixed