CVE-2024-37353 Information
Description
In the Linux kernel the following vulnerability has been resolved:
virtio: delete vq in vp_find_vqs_msix() when request_irq() fails
When request_irq() fails error path calls vp_del_vqs(). There as vq is present in the list free_irq() is called for the same vector. That causes following splat:
[ 0.414355] Trying to free already-free IRQ 27
[ 0.414403] WARNING: CPU: 1 PID: 1 at kernel/irq/manage.c:1899 free_irq+0x1a1/0x2d0
[ 0.414510] Modules linked in:
[ 0.414540] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 6.9.0-rc4+ 27
[ 0.414540] Hardware name: QEMU Standard PC (i440FX + PIIX 1996) BIOS 1.16.3-1.fc39 04/01/2014
[ 0.414540] RIP: 0010:free_irq+0x1a1/0x2d0
[ 0.414540] Code: 1e 00 48 83 c4 08 48 89 e8 5b 5d 41 5c 41 5d 41 5e 41 5f c3 cc cc cc cc 90 8b 74 24 04 48 c7 c7 98 80 6c b1 e8 00 c9 f7 ff 90 <0f> 0b 90 90 48 89 ee 4c 89 ef e8 e0 20 b8 00 49 8b 47 40 48 8b 40
[ 0.414540] RSP: 0000:ffffb71480013ae0 EFLAGS: 00010086
[ 0.414540] RAX: 0000000000000000 RBX: ffffa099c2722000 RCX: 0000000000000000
[ 0.414540] RDX: 0000000000000000 RSI: ffffb71480013998 RDI: 0000000000000001
[ 0.414540] RBP: 0000000000000246 R08: 00000000ffffdfff R09: 0000000000000001
[ 0.414540] R10: 00000000ffffdfff R11: ffffffffb18729c0 R12: ffffa099c1c91760
[ 0.414540] R13: ffffa099c1c916a4 R14: ffffa099c1d2f200 R15: ffffa099c1c91600
[ 0.414540] FS: 0000000000000000(0000) GS:ffffa099fec40000(0000) knlGS:0000000000000000
[ 0.414540] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 0.414540] CR2: 0000000000000000 CR3: 0000000008e3e001 CR4: 0000000000370ef0
[ 0.414540] Call Trace:
[ 0.414540]
Fix this by calling deleting the current vq when request_irq() fails.
Reference
https://git.kernel.org/stable/c/cb7a7c8144b434e06aba99b13b045a7efe859587 https://git.kernel.org/stable/c/43a9aaf63254ab821f0f25fea25698ebe69ea16a https://git.kernel.org/stable/c/7fbe54f02a5c77ff5dd65e8ed0b58e3bd8c43e9c https://git.kernel.org/stable/c/42d30da50d5c1ec433fd9551bfddd6887407c352 https://git.kernel.org/stable/c/abf001651acd1858252764fa39d79e3d0b5c86b2 https://git.kernel.org/stable/c/04207a9c64e0b16dac842e5b2ecfa53af25bdea7 https://git.kernel.org/stable/c/bb61a84793858330ba2ca1d202d3779096f6fb54 https://git.kernel.org/stable/c/89875151fccdd024d571aa884ea97a0128b968b6
Share on: