CVE-2023-53515
published 2025-10-01CVE-2023-53515: 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…
PriorityP338high7.8CVSS 3.1
AVLACLPRLUINSUCHIHAH
EPSS
0.14%
3.7th percentile
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.
Affected
21 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| debian | linux | < linux 6.1.52-1 (bookworm) | linux 6.1.52-1 (bookworm) |
| linux | linux | — | — |
| linux | linux | >= 7eb781b1bbb7136fe78fb8c28c1c223c61fa32b5 < 97a2d55ead76358245b446efd87818e919196d7a | 97a2d55ead76358245b446efd87818e919196d7a |
| linux | linux | >= 7eb781b1bbb7136fe78fb8c28c1c223c61fa32b5 < b788ad3b2468512339c05f23692e36860264e674 | b788ad3b2468512339c05f23692e36860264e674 |
| linux | linux | >= 7eb781b1bbb7136fe78fb8c28c1c223c61fa32b5 < 3ff54d904fafabd0912796785e53cce4e69ca123 | 3ff54d904fafabd0912796785e53cce4e69ca123 |
| linux | linux | >= 7eb781b1bbb7136fe78fb8c28c1c223c61fa32b5 < 5b7d5c2dd664eb8b9a06ecbc06e28d39359c422e | 5b7d5c2dd664eb8b9a06ecbc06e28d39359c422e |
| linux | linux | >= 7eb781b1bbb7136fe78fb8c28c1c223c61fa32b5 < af5818c35173e096085c6ae2e3aac605d3d15e41 | af5818c35173e096085c6ae2e3aac605d3d15e41 |
| linux | linux | >= 7eb781b1bbb7136fe78fb8c28c1c223c61fa32b5 < 2dcb368fe5a8eee498ca75c93a18ce2f3b0d6a8e | 2dcb368fe5a8eee498ca75c93a18ce2f3b0d6a8e |
| linux | linux | >= 7eb781b1bbb7136fe78fb8c28c1c223c61fa32b5 < 55c91fedd03d7b9cf0c5199b2eb12b9b8e95281a | 55c91fedd03d7b9cf0c5199b2eb12b9b8e95281a |
| linux | linux_kernel | — | — |
| linux | linux_kernel | — | — |
| linux | linux_kernel | >= 0 < 5.10.197-1 | 5.10.197-1 |
| linux | linux_kernel | >= 0 < 6.1.52-1 | 6.1.52-1 |
| linux | linux_kernel | >= 0 < 6.4.13-1 | 6.4.13-1 |
| linux | linux_kernel | >= 0 < 6.4.13-1 | 6.4.13-1 |
| linux | linux_kernel | >= 4.15.1 < 4.19.293 | 4.19.293 |
| linux | linux_kernel | >= 4.20 < 5.4.255 | 5.4.255 |
| linux | linux_kernel | >= 5.11 < 5.15.128 | 5.15.128 |
| linux | linux_kernel | >= 5.16 < 6.1.47 | 6.1.47 |
| linux | linux_kernel | >= 5.5 < 5.10.192 | 5.10.192 |
| linux | linux_kernel | >= 6.2 < 6.4.12 | 6.4.12 |
CVSS provenance
nvdv3.17.8HIGHCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
osv7.8HIGH
vendor_debian7.8HIGH
vendor_redhat7.8HIGH
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
GHSA
GHSA-h7xx-83rf-fcj5: 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 bec
ghsa_unreviewed·2025-10-01
CVE-2023-53515 [HIGH] CWE-416 GHSA-h7xx-83rf-fcj5: 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 bec
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.
OSV
CVE-2023-53515: 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 becau
osv·2025-10-01·CVSS 7.8
CVE-2023-53515 [HIGH] CVE-2023-53515: 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 becau
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.
Red Hat
kernel: virtio-mmio: don't break lifecycle of vm_dev
vendor_redhat·2025-10-01·CVSS 7.8
CVE-2023-53515 [HIGH] CWE-672 kernel: virtio-mmio: don't break lifecycle of vm_dev
kernel: virtio-mmio: don't break lifecycle of vm_dev
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.
Statement: The patch fixes a Use-Af
Debian
CVE-2023-53515: linux - In the Linux kernel, the following vulnerability has been resolved: virtio-mmio...
vendor_debian·2023·CVSS 7.8
CVE-2023-53515 [HIGH] CVE-2023-53515: linux - In the Linux kernel, the following vulnerability has been resolved: virtio-mmio...
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.
Scope: local
bookworm: resolved (fixed in 6.1.52-1)
bullseye: resolved (fixed in 5.10.197-
No detection rules found.
No public exploits indexed.
https://git.kernel.org/stable/c/2dcb368fe5a8eee498ca75c93a18ce2f3b0d6a8ehttps://git.kernel.org/stable/c/3ff54d904fafabd0912796785e53cce4e69ca123https://git.kernel.org/stable/c/55c91fedd03d7b9cf0c5199b2eb12b9b8e95281ahttps://git.kernel.org/stable/c/5b7d5c2dd664eb8b9a06ecbc06e28d39359c422ehttps://git.kernel.org/stable/c/97a2d55ead76358245b446efd87818e919196d7ahttps://git.kernel.org/stable/c/af5818c35173e096085c6ae2e3aac605d3d15e41https://git.kernel.org/stable/c/b788ad3b2468512339c05f23692e36860264e674
2025-10-01
Published