CVE-2024-47687: vdpa/mlx5: Fix invalid mr resource destroy
In the Linux kernel, the following vulnerability has been resolved:
vdpa/mlx5: Fix invalid mr resource destroy
Certain error paths from mlx5vdpadevadd() can end up releasing mr resources which never got initialized in the first place.
This patch adds the missing check in mlx5vdpadestroymrresources() to block releasing non-initialized mr resources.
Reference trace:
mlx5core 0000:08:00.2: mlx5vdpadevadd:3274:(pid 2700) warning: No mac address provisioned? BUG: kernel NULL pointer dereference, address: 0000000000000000 #PF: supervisor read access in kernel mode #PF: errorcode(0x0000) - not-present page PGD 140216067 P4D 0 Oops: 0000 [#1] PREEMPT SMP NOPTI CPU: 8 PID: 2700 Comm: vdpa Kdump: loaded Not tainted 5.14.0-496.el9.x8664 #1 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014 RIP: 0010:vhostiotlbdelrange+0xf/0xe0 [vhostiotlb] Code: [...] RSP: 0018:ff1c823ac23077f0 EFLAGS: 00010246 RAX: ffffffffc1a21a60 RBX: ffffffff899567a0 RCX: 0000000000000000 RDX: ffffffffffffffff RSI: 0000000000000000 RDI: 0000000000000000 RBP: ff1bda1f7c21e800 R08: 0000000000000000 R09: ff1c823ac2307670 R10: ff1c823ac2307668 R11: ffffffff8a9e7b68 R12: 0000000000000000 R13: 0000000000000000 R14: ff1bda1f43e341a0 R15: 00000000ffffffea FS: 00007f56eba7c740(0000) GS:ff1bda269f800000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000000 CR3: 0000000104d90001 CR4: 0000000000771ef0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 PKRU: 55555554 Call Trace:
? showtraceloglvl+0x1c4/0x2df ? showtraceloglvl+0x1c4/0x2df ? mlx5vdpafree+0x3d/0x150 [mlx5vdpa] ? diebody.cold+0x8/0xd ? pagefaultoops+0x134/0x170 ? irqworkqueuelocal+0x2b/0xc0 ? irqworkqueue+0x2c/0x50 ? excpagefault+0x62/0x150 ? asmexcpagefault+0x22/0x30 ? pfxmlx5vdpafree+0x10/0x10 [mlx5vdpa] ? vhostiotlbdelrange+0xf/0xe0 [vhostiotlb] mlx5vdpafree+0x3d/0x150 [mlx5vdpa] vdpareleasedev+0x1e/0x50 [vdpa] devicerelease+0x31/0x90 kobjectcleanup+0x37/0x130 mlx5vdpadevadd+0x2d2/0x7a0 [mlx5vdpa] vdpanlcmddevaddsetdoit+0x277/0x4c0 [vdpa] genlfamilyrcvmsgdoit+0xd9/0x130 genlfamilyrcvmsg+0x14d/0x220 ? pfxvdpanlcmddevaddsetdoit+0x10/0x10 [vdpa] ? copytouser+0x1a/0x30 ? moveaddrtouser+0x4b/0xe0 genlrcvmsg+0x47/0xa0 ? importiovec+0x46/0x150 ? pfxgenlrcvmsg+0x10/0x10 netlinkrcvskb+0x54/0x100 genlrcv+0x24/0x40 netlinkunicast+0x245/0x370 netlinksendmsg+0x206/0x440 syssendto+0x1dc/0x1f0 ? doreadfault+0x10c/0x1d0 ? doptemissing+0x10d/0x190 x64syssendto+0x20/0x30 dosyscall64+0x5c/0xf0 ? countmemcgevents+0x4f/0xb0 ? mmaccountfault+0x6c/0x100 ? handlemmfault+0x116/0x270 ? douseraddrfault+0x1d6/0x6a0 ? dosyscall64+0x6b/0xf0 ? clearbhbloop+0x25/0x80 ? clearbhbloop+0x25/0x80 ? clearbhbloop+0x25/0x80 ? clearbhbloop+0x25/0x80 ? clearbhbloop+0x25/0x80 entrySYSCALL64afterhwframe+0x78/0x80
Other sources
This CVE was automatically created from a reference found in an email or other text. If you are reading this, then this CVE entry is probably erroneous, since this text should be replaced by the official CVE description automatically.
— Launchpad
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2024-47687?
The severity of CVE-2024-47687 has not been explicitly defined, but it involves potential resource management issues in the Linux kernel.
How do I fix CVE-2024-47687?
To fix CVE-2024-47687, update the Linux kernel to a version that includes the patch addressing this vulnerability.
Which versions of the Linux kernel are affected by CVE-2024-47687?
CVE-2024-47687 affects Linux kernel versions from 6.7 to 6.10.13 and 6.11.x versions.
Is CVE-2024-47687 related to virtualization in the Linux kernel?
Yes, CVE-2024-47687 is related to the vdpa/mlx5 component in the Linux kernel, which is used for virtualization.
What happens if CVE-2024-47687 is not addressed?
If CVE-2024-47687 is not addressed, it may lead to improper resource management that could affect system stability and performance.