| From bippy-1.1.0 Mon Sep 17 00:00:00 2001 |
| From: Greg Kroah-Hartman <gregkh@kernel.org> |
| To: <linux-cve-announce@vger.kernel.org> |
| Reply-to: <cve@kernel.org>, <linux-kernel@vger.kernel.org> |
| Subject: CVE-2023-53082: vp_vdpa: fix the crash in hot unplug with vp_vdpa |
| |
| Description |
| =========== |
| |
| In the Linux kernel, the following vulnerability has been resolved: |
| |
| vp_vdpa: fix the crash in hot unplug with vp_vdpa |
| |
| While unplugging the vp_vdpa device, it triggers a kernel panic |
| The root cause is: vdpa_mgmtdev_unregister() will accesses modern |
| devices which will cause a use after free. |
| So need to change the sequence in vp_vdpa_remove |
| |
| [ 195.003359] BUG: unable to handle page fault for address: ff4e8beb80199014 |
| [ 195.004012] #PF: supervisor read access in kernel mode |
| [ 195.004486] #PF: error_code(0x0000) - not-present page |
| [ 195.004960] PGD 100000067 P4D 1001b6067 PUD 1001b7067 PMD 1001b8067 PTE 0 |
| [ 195.005578] Oops: 0000 1 PREEMPT SMP PTI |
| [ 195.005968] CPU: 13 PID: 164 Comm: kworker/u56:10 Kdump: loaded Not tainted 5.14.0-252.el9.x86_64 #1 |
| [ 195.006792] Hardware name: Red Hat KVM/RHEL, BIOS edk2-20221207gitfff6d81270b5-2.el9 unknown |
| [ 195.007556] Workqueue: kacpi_hotplug acpi_hotplug_work_fn |
| [ 195.008059] RIP: 0010:ioread8+0x31/0x80 |
| [ 195.008418] Code: 77 28 48 81 ff 00 00 01 00 76 0b 89 fa ec 0f b6 c0 c3 cc cc cc cc 8b 15 ad 72 93 01 b8 ff 00 00 00 85 d2 75 0f c3 cc cc cc cc <8a> 07 0f b6 c0 c3 cc cc cc cc 83 ea 01 48 83 ec 08 48 89 fe 48 c7 |
| [ 195.010104] RSP: 0018:ff4e8beb8067bab8 EFLAGS: 00010292 |
| [ 195.010584] RAX: ffffffffc05834a0 RBX: ffffffffc05843c0 RCX: ff4e8beb8067bae0 |
| [ 195.011233] RDX: ff1bcbd580f88000 RSI: 0000000000000246 RDI: ff4e8beb80199014 |
| [ 195.011881] RBP: ff1bcbd587e39000 R08: ffffffff916fa2d0 R09: ff4e8beb8067ba68 |
| [ 195.012527] R10: 000000000000001c R11: 0000000000000000 R12: ff1bcbd5a3de9120 |
| [ 195.013179] R13: ffffffffc062d000 R14: 0000000000000080 R15: ff1bcbe402bc7805 |
| [ 195.013826] FS: 0000000000000000(0000) GS:ff1bcbe402740000(0000) knlGS:0000000000000000 |
| [ 195.014564] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 |
| [ 195.015093] CR2: ff4e8beb80199014 CR3: 0000000107dea002 CR4: 0000000000771ee0 |
| [ 195.015741] PKRU: 55555554 |
| [ 195.016001] Call Trace: |
| [ 195.016233] <TASK> |
| [ 195.016434] vp_modern_get_status+0x12/0x20 |
| [ 195.016823] vp_vdpa_reset+0x1b/0x50 [vp_vdpa] |
| [ 195.017238] virtio_vdpa_reset+0x3c/0x48 [virtio_vdpa] |
| [ 195.017709] remove_vq_common+0x1f/0x3a0 [virtio_net] |
| [ 195.018178] virtnet_remove+0x5d/0x70 [virtio_net] |
| [ 195.018618] virtio_dev_remove+0x3d/0x90 |
| [ 195.018986] device_release_driver_internal+0x1aa/0x230 |
| [ 195.019466] bus_remove_device+0xd8/0x150 |
| [ 195.019841] device_del+0x18b/0x3f0 |
| [ 195.020167] ? kernfs_find_ns+0x35/0xd0 |
| [ 195.020526] device_unregister+0x13/0x60 |
| [ 195.020894] unregister_virtio_device+0x11/0x20 |
| [ 195.021311] device_release_driver_internal+0x1aa/0x230 |
| [ 195.021790] bus_remove_device+0xd8/0x150 |
| [ 195.022162] device_del+0x18b/0x3f0 |
| [ 195.022487] device_unregister+0x13/0x60 |
| [ 195.022852] ? vdpa_dev_remove+0x30/0x30 [vdpa] |
| [ 195.023270] vp_vdpa_dev_del+0x12/0x20 [vp_vdpa] |
| [ 195.023694] vdpa_match_remove+0x2b/0x40 [vdpa] |
| [ 195.024115] bus_for_each_dev+0x78/0xc0 |
| [ 195.024471] vdpa_mgmtdev_unregister+0x65/0x80 [vdpa] |
| [ 195.024937] vp_vdpa_remove+0x23/0x40 [vp_vdpa] |
| [ 195.025353] pci_device_remove+0x36/0xa0 |
| [ 195.025719] device_release_driver_internal+0x1aa/0x230 |
| [ 195.026201] pci_stop_bus_device+0x6c/0x90 |
| [ 195.026580] pci_stop_and_remove_bus_device+0xe/0x20 |
| [ 195.027039] disable_slot+0x49/0x90 |
| [ 195.027366] acpiphp_disable_and_eject_slot+0x15/0x90 |
| [ 195.027832] hotplug_event+0xea/0x210 |
| [ 195.028171] ? hotplug_event+0x210/0x210 |
| [ 195.028535] acpiphp_hotplug_notify+0x22/0x80 |
| [ 195.028942] ? hotplug_event+0x210/0x210 |
| [ 195.029303] acpi_device_hotplug+0x8a/0x1d0 |
| [ 195.029690] acpi_hotplug_work_fn+0x1a/0x30 |
| [ 195.030077] process_one_work+0x1e8/0x3c0 |
| [ 195.030451] worker_thread+0x50/0x3b0 |
| [ 195.030791] ? rescuer_thread+0x3a0/0x3a0 |
| [ 195.031165] kthread+0xd9/0x100 |
| [ 195.031459] ? kthread_complete_and_exit+0x20/0x20 |
| [ 195.031899] ret_from_fork+0x22/0x30 |
| [ 195.032233] </TASK> |
| |
| The Linux kernel CVE team has assigned CVE-2023-53082 to this issue. |
| |
| |
| Affected and fixed versions |
| =========================== |
| |
| Issue introduced in 5.19 with commit ffbda8e9df10d1784d5427ec199e7d8308e3763f and fixed in 6.1.21 with commit baafa2960731211837d8fc04ff3873ecb7440464 |
| Issue introduced in 5.19 with commit ffbda8e9df10d1784d5427ec199e7d8308e3763f and fixed in 6.2.8 with commit fa1f327f93c9a7310cce9d2fcda28b7af91f7437 |
| Issue introduced in 5.19 with commit ffbda8e9df10d1784d5427ec199e7d8308e3763f and fixed in 6.3 with commit aed8efddd39b3434c96718d39009285c52b1cafc |
| |
| Please see https://www.kernel.org for a full list of currently supported |
| kernel versions by the kernel community. |
| |
| Unaffected versions might change over time as fixes are backported to |
| older supported kernel versions. The official CVE entry at |
| https://cve.org/CVERecord/?id=CVE-2023-53082 |
| will be updated if fixes are backported, please check that for the most |
| up to date information about this issue. |
| |
| |
| Affected files |
| ============== |
| |
| The file(s) affected by this issue are: |
| drivers/vdpa/virtio_pci/vp_vdpa.c |
| |
| |
| Mitigation |
| ========== |
| |
| The Linux kernel CVE team recommends that you update to the latest |
| stable kernel version for this, and many other bugfixes. Individual |
| changes are never tested alone, but rather are part of a larger kernel |
| release. Cherry-picking individual commits is not recommended or |
| supported by the Linux kernel community at all. If however, updating to |
| the latest release is impossible, the individual changes to resolve this |
| issue can be found at these commits: |
| https://git.kernel.org/stable/c/baafa2960731211837d8fc04ff3873ecb7440464 |
| https://git.kernel.org/stable/c/fa1f327f93c9a7310cce9d2fcda28b7af91f7437 |
| https://git.kernel.org/stable/c/aed8efddd39b3434c96718d39009285c52b1cafc |