| { |
| "containers": { |
| "cna": { |
| "providerMetadata": { |
| "orgId": "f4215fc3-5b6b-47ff-a258-f7189bd81038" |
| }, |
| "descriptions": [ |
| { |
| "lang": "en", |
| "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvirtio: delete vq in vp_find_vqs_msix() when request_irq() fails\n\nWhen request_irq() fails, error path calls vp_del_vqs(). There, as vq is\npresent in the list, free_irq() is called for the same vector. That\ncauses following splat:\n\n[ 0.414355] Trying to free already-free IRQ 27\n[ 0.414403] WARNING: CPU: 1 PID: 1 at kernel/irq/manage.c:1899 free_irq+0x1a1/0x2d0\n[ 0.414510] Modules linked in:\n[ 0.414540] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 6.9.0-rc4+ #27\n[ 0.414540] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-1.fc39 04/01/2014\n[ 0.414540] RIP: 0010:free_irq+0x1a1/0x2d0\n[ 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\n[ 0.414540] RSP: 0000:ffffb71480013ae0 EFLAGS: 00010086\n[ 0.414540] RAX: 0000000000000000 RBX: ffffa099c2722000 RCX: 0000000000000000\n[ 0.414540] RDX: 0000000000000000 RSI: ffffb71480013998 RDI: 0000000000000001\n[ 0.414540] RBP: 0000000000000246 R08: 00000000ffffdfff R09: 0000000000000001\n[ 0.414540] R10: 00000000ffffdfff R11: ffffffffb18729c0 R12: ffffa099c1c91760\n[ 0.414540] R13: ffffa099c1c916a4 R14: ffffa099c1d2f200 R15: ffffa099c1c91600\n[ 0.414540] FS: 0000000000000000(0000) GS:ffffa099fec40000(0000) knlGS:0000000000000000\n[ 0.414540] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n[ 0.414540] CR2: 0000000000000000 CR3: 0000000008e3e001 CR4: 0000000000370ef0\n[ 0.414540] Call Trace:\n[ 0.414540] <TASK>\n[ 0.414540] ? __warn+0x80/0x120\n[ 0.414540] ? free_irq+0x1a1/0x2d0\n[ 0.414540] ? report_bug+0x164/0x190\n[ 0.414540] ? handle_bug+0x3b/0x70\n[ 0.414540] ? exc_invalid_op+0x17/0x70\n[ 0.414540] ? asm_exc_invalid_op+0x1a/0x20\n[ 0.414540] ? free_irq+0x1a1/0x2d0\n[ 0.414540] vp_del_vqs+0xc1/0x220\n[ 0.414540] vp_find_vqs_msix+0x305/0x470\n[ 0.414540] vp_find_vqs+0x3e/0x1a0\n[ 0.414540] vp_modern_find_vqs+0x1b/0x70\n[ 0.414540] init_vqs+0x387/0x600\n[ 0.414540] virtnet_probe+0x50a/0xc80\n[ 0.414540] virtio_dev_probe+0x1e0/0x2b0\n[ 0.414540] really_probe+0xc0/0x2c0\n[ 0.414540] ? __pfx___driver_attach+0x10/0x10\n[ 0.414540] __driver_probe_device+0x73/0x120\n[ 0.414540] driver_probe_device+0x1f/0xe0\n[ 0.414540] __driver_attach+0x88/0x180\n[ 0.414540] bus_for_each_dev+0x85/0xd0\n[ 0.414540] bus_add_driver+0xec/0x1f0\n[ 0.414540] driver_register+0x59/0x100\n[ 0.414540] ? __pfx_virtio_net_driver_init+0x10/0x10\n[ 0.414540] virtio_net_driver_init+0x90/0xb0\n[ 0.414540] do_one_initcall+0x58/0x230\n[ 0.414540] kernel_init_freeable+0x1a3/0x2d0\n[ 0.414540] ? __pfx_kernel_init+0x10/0x10\n[ 0.414540] kernel_init+0x1a/0x1c0\n[ 0.414540] ret_from_fork+0x31/0x50\n[ 0.414540] ? __pfx_kernel_init+0x10/0x10\n[ 0.414540] ret_from_fork_asm+0x1a/0x30\n[ 0.414540] </TASK>\n\nFix this by calling deleting the current vq when request_irq() fails." |
| } |
| ], |
| "affected": [ |
| { |
| "product": "Linux", |
| "vendor": "Linux", |
| "defaultStatus": "unaffected", |
| "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", |
| "programFiles": [ |
| "drivers/virtio/virtio_pci_common.c" |
| ], |
| "versions": [ |
| { |
| "version": "0b0f9dc52ed0", |
| "lessThan": "cb7a7c8144b4", |
| "status": "affected", |
| "versionType": "git" |
| }, |
| { |
| "version": "0b0f9dc52ed0", |
| "lessThan": "43a9aaf63254", |
| "status": "affected", |
| "versionType": "git" |
| }, |
| { |
| "version": "0b0f9dc52ed0", |
| "lessThan": "7fbe54f02a5c", |
| "status": "affected", |
| "versionType": "git" |
| }, |
| { |
| "version": "0b0f9dc52ed0", |
| "lessThan": "42d30da50d5c", |
| "status": "affected", |
| "versionType": "git" |
| }, |
| { |
| "version": "0b0f9dc52ed0", |
| "lessThan": "abf001651acd", |
| "status": "affected", |
| "versionType": "git" |
| }, |
| { |
| "version": "0b0f9dc52ed0", |
| "lessThan": "04207a9c64e0", |
| "status": "affected", |
| "versionType": "git" |
| }, |
| { |
| "version": "0b0f9dc52ed0", |
| "lessThan": "bb61a8479385", |
| "status": "affected", |
| "versionType": "git" |
| }, |
| { |
| "version": "0b0f9dc52ed0", |
| "lessThan": "89875151fccd", |
| "status": "affected", |
| "versionType": "git" |
| } |
| ] |
| }, |
| { |
| "product": "Linux", |
| "vendor": "Linux", |
| "defaultStatus": "affected", |
| "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", |
| "programFiles": [ |
| "drivers/virtio/virtio_pci_common.c" |
| ], |
| "versions": [ |
| { |
| "version": "4.11", |
| "status": "affected" |
| }, |
| { |
| "version": "0", |
| "lessThan": "4.11", |
| "status": "unaffected", |
| "versionType": "custom" |
| }, |
| { |
| "version": "4.19.316", |
| "lessThanOrEqual": "4.19.*", |
| "status": "unaffected", |
| "versionType": "custom" |
| }, |
| { |
| "version": "5.4.278", |
| "lessThanOrEqual": "5.4.*", |
| "status": "unaffected", |
| "versionType": "custom" |
| }, |
| { |
| "version": "5.10.219", |
| "lessThanOrEqual": "5.10.*", |
| "status": "unaffected", |
| "versionType": "custom" |
| }, |
| { |
| "version": "5.15.161", |
| "lessThanOrEqual": "5.15.*", |
| "status": "unaffected", |
| "versionType": "custom" |
| }, |
| { |
| "version": "6.1.93", |
| "lessThanOrEqual": "6.1.*", |
| "status": "unaffected", |
| "versionType": "custom" |
| }, |
| { |
| "version": "6.6.33", |
| "lessThanOrEqual": "6.6.*", |
| "status": "unaffected", |
| "versionType": "custom" |
| }, |
| { |
| "version": "6.9.4", |
| "lessThanOrEqual": "6.9.*", |
| "status": "unaffected", |
| "versionType": "custom" |
| }, |
| { |
| "version": "6.10", |
| "lessThanOrEqual": "*", |
| "status": "unaffected", |
| "versionType": "original_commit_for_fix" |
| } |
| ] |
| } |
| ], |
| "references": [ |
| { |
| "url": "https://git.kernel.org/stable/c/cb7a7c8144b434e06aba99b13b045a7efe859587" |
| }, |
| { |
| "url": "https://git.kernel.org/stable/c/43a9aaf63254ab821f0f25fea25698ebe69ea16a" |
| }, |
| { |
| "url": "https://git.kernel.org/stable/c/7fbe54f02a5c77ff5dd65e8ed0b58e3bd8c43e9c" |
| }, |
| { |
| "url": "https://git.kernel.org/stable/c/42d30da50d5c1ec433fd9551bfddd6887407c352" |
| }, |
| { |
| "url": "https://git.kernel.org/stable/c/abf001651acd1858252764fa39d79e3d0b5c86b2" |
| }, |
| { |
| "url": "https://git.kernel.org/stable/c/04207a9c64e0b16dac842e5b2ecfa53af25bdea7" |
| }, |
| { |
| "url": "https://git.kernel.org/stable/c/bb61a84793858330ba2ca1d202d3779096f6fb54" |
| }, |
| { |
| "url": "https://git.kernel.org/stable/c/89875151fccdd024d571aa884ea97a0128b968b6" |
| } |
| ], |
| "title": "virtio: delete vq in vp_find_vqs_msix() when request_irq() fails", |
| "x_generator": { |
| "engine": "bippy-c9c4e1df01b2" |
| } |
| } |
| }, |
| "cveMetadata": { |
| "assignerOrgId": "f4215fc3-5b6b-47ff-a258-f7189bd81038", |
| "cveID": "CVE-2024-37353", |
| "requesterUserId": "gregkh@kernel.org", |
| "serial": "1", |
| "state": "PUBLISHED" |
| }, |
| "dataType": "CVE_RECORD", |
| "dataVersion": "5.0" |
| } |