CVE-2023-53515

Severity CVSS v4.0:
Pending analysis
Type:
CWE-416 Use After Free
Publication date:
01/10/2025
Last modified:
26/01/2026

Description

In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> virtio-mmio: don&amp;#39;t break lifecycle of vm_dev<br /> <br /> vm_dev has a separate lifecycle because it has a &amp;#39;struct device&amp;#39;<br /> embedded. Thus, having a release callback for it is correct.<br /> <br /> Allocating the vm_dev struct with devres totally breaks this protection,<br /> though. Instead of waiting for the vm_dev release callback, the memory<br /> is freed when the platform_device is removed. Resulting in a<br /> use-after-free when finally the callback is to be called.<br /> <br /> To easily see the problem, compile the kernel with<br /> CONFIG_DEBUG_KOBJECT_RELEASE and unbind with sysfs.<br /> <br /> The fix is easy, don&amp;#39;t use devres in this case.<br /> <br /> Found during my research about object lifetime problems.

Vulnerable products and versions

CPE From Up to
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.15.1 (including) 4.19.293 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.20 (including) 5.4.255 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.5 (including) 5.10.192 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 (including) 5.15.128 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (including) 6.1.47 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (including) 6.4.12 (excluding)
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:*:*:*:*:*:*