CVE-2024-46738
Severity CVSS v4.0:
Pending analysis
Type:
CWE-416
Use After Free
Publication date:
18/09/2024
Last modified:
03/11/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
VMCI: Fix use-after-free when removing resource in vmci_resource_remove()<br />
<br />
When removing a resource from vmci_resource_table in<br />
vmci_resource_remove(), the search is performed using the resource<br />
handle by comparing context and resource fields.<br />
<br />
It is possible though to create two resources with different types<br />
but same handle (same context and resource fields).<br />
<br />
When trying to remove one of the resources, vmci_resource_remove()<br />
may not remove the intended one, but the object will still be freed<br />
as in the case of the datagram type in vmci_datagram_destroy_handle().<br />
vmci_resource_table will still hold a pointer to this freed resource<br />
leading to a use-after-free vulnerability.<br />
<br />
BUG: KASAN: use-after-free in vmci_handle_is_equal include/linux/vmw_vmci_defs.h:142 [inline]<br />
BUG: KASAN: use-after-free in vmci_resource_remove+0x3a1/0x410 drivers/misc/vmw_vmci/vmci_resource.c:147<br />
Read of size 4 at addr ffff88801c16d800 by task syz-executor197/1592<br />
Call Trace:<br />
<br />
__dump_stack lib/dump_stack.c:88 [inline]<br />
dump_stack_lvl+0x82/0xa9 lib/dump_stack.c:106<br />
print_address_description.constprop.0+0x21/0x366 mm/kasan/report.c:239<br />
__kasan_report.cold+0x7f/0x132 mm/kasan/report.c:425<br />
kasan_report+0x38/0x51 mm/kasan/report.c:442<br />
vmci_handle_is_equal include/linux/vmw_vmci_defs.h:142 [inline]<br />
vmci_resource_remove+0x3a1/0x410 drivers/misc/vmw_vmci/vmci_resource.c:147<br />
vmci_qp_broker_detach+0x89a/0x11b9 drivers/misc/vmw_vmci/vmci_queue_pair.c:2182<br />
ctx_free_ctx+0x473/0xbe1 drivers/misc/vmw_vmci/vmci_context.c:444<br />
kref_put include/linux/kref.h:65 [inline]<br />
vmci_ctx_put drivers/misc/vmw_vmci/vmci_context.c:497 [inline]<br />
vmci_ctx_destroy+0x170/0x1d6 drivers/misc/vmw_vmci/vmci_context.c:195<br />
vmci_host_close+0x125/0x1ac drivers/misc/vmw_vmci/vmci_host.c:143<br />
__fput+0x261/0xa34 fs/file_table.c:282<br />
task_work_run+0xf0/0x194 kernel/task_work.c:164<br />
tracehook_notify_resume include/linux/tracehook.h:189 [inline]<br />
exit_to_user_mode_loop+0x184/0x189 kernel/entry/common.c:187<br />
exit_to_user_mode_prepare+0x11b/0x123 kernel/entry/common.c:220<br />
__syscall_exit_to_user_mode_work kernel/entry/common.c:302 [inline]<br />
syscall_exit_to_user_mode+0x18/0x42 kernel/entry/common.c:313<br />
do_syscall_64+0x41/0x85 arch/x86/entry/common.c:86<br />
entry_SYSCALL_64_after_hwframe+0x6e/0x0<br />
<br />
This change ensures the type is also checked when removing<br />
the resource from vmci_resource_table in vmci_resource_remove().
Impact
Base Score 3.x
7.80
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 3.9 (including) | 4.19.322 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.20 (including) | 5.4.284 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.226 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.167 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.110 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.51 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.10.10 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.11:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.11:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.11:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.11:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.11:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.11:rc6:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/00fe5292f081f8d773e572df8e03bf6e1855fe49
- https://git.kernel.org/stable/c/39e7e593418ccdbd151f2925fa6be1a616d16c96
- https://git.kernel.org/stable/c/48b9a8dabcc3cf5f961b2ebcd8933bf9204babb7
- https://git.kernel.org/stable/c/6c563a29857aa8053b67ee141191f69757f27f6e
- https://git.kernel.org/stable/c/b243d52b5f6f59f9d39e69b191fb3d58b94a43b1
- https://git.kernel.org/stable/c/b9efdf333174468651be40390cbc79c9f55d9cce
- https://git.kernel.org/stable/c/ef5f4d0c5ee22d4f873116fec844ff6edaf3fa7d
- https://git.kernel.org/stable/c/f6365931bf7c07b2b397dbb06a4f6573cc9fae73
- https://lists.debian.org/debian-lts-announce/2024/10/msg00003.html
- https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html



