CVE-2022-48726

In the Linux kernel, the following vulnerability has been resolved: RDMA/ucma: Protect mc during concurrent multicast leaves Partially revert the commit mentioned in the Fixes line to make sure that allocation and erasing multicast struct are locked. BUG: KASAN: use-after-free in ucma_cleanup_multicast drivers/infiniband/core/ucma.c:491 [inline] BUG: KASAN: use-after-free in ucma_destroy_private_ctx+0x914/0xb70 drivers/infiniband/core/ucma.c:579 Read of size 8 at addr ffff88801bb74b00 by task syz-executor.1/25529 CPU: 0 PID: 25529 Comm: syz-executor.1 Not tainted 5.16.0-rc7-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description.constprop.0.cold+0x8d/0x320 mm/kasan/report.c:247 __kasan_report mm/kasan/report.c:433 [inline] kasan_report.cold+0x83/0xdf mm/kasan/report.c:450 ucma_cleanup_multicast drivers/infiniband/core/ucma.c:491 [inline] ucma_destroy_private_ctx+0x914/0xb70 drivers/infiniband/core/ucma.c:579 ucma_destroy_id+0x1e6/0x280 drivers/infiniband/core/ucma.c:614 ucma_write+0x25c/0x350 drivers/infiniband/core/ucma.c:1732 vfs_write+0x28e/0xae0 fs/read_write.c:588 ksys_write+0x1ee/0x250 fs/read_write.c:643 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x44/0xae Currently the xarray search can touch a concurrently freeing mc as the xa_for_each() is not surrounded by any lock. Rather than hold the lock for a full scan hold it only for the effected items, which is usually an empty list.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.17:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.17:rc2:*:*:*:*:*:*

History

18 Sep 2024, 16:09

Type Values Removed Values Added
First Time Linux
Linux linux Kernel
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 7.8
CPE cpe:2.3:o:linux:linux_kernel:5.17:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.17:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
CWE CWE-416
References () https://git.kernel.org/stable/c/2923948ffe0835f7114e948b35bcc42bc9b3baa1 - () https://git.kernel.org/stable/c/2923948ffe0835f7114e948b35bcc42bc9b3baa1 - Patch
References () https://git.kernel.org/stable/c/36e8169ec973359f671f9ec7213547059cae972e - () https://git.kernel.org/stable/c/36e8169ec973359f671f9ec7213547059cae972e - Patch
References () https://git.kernel.org/stable/c/75c610212b9f1756b9384911d3a2c347eee8031c - () https://git.kernel.org/stable/c/75c610212b9f1756b9384911d3a2c347eee8031c - Patch
References () https://git.kernel.org/stable/c/ee2477e8ccd3d978eeac0dc5a981b286d9bb7b0a - () https://git.kernel.org/stable/c/ee2477e8ccd3d978eeac0dc5a981b286d9bb7b0a - Patch
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: RDMA/ucma: protege mc durante las salidas simultáneas de multidifusión. Revierta parcialmente la confirmación mencionada en la línea Correcciones para asegurarse de que la asignación y el borrado de la estructura de multidifusión estén bloqueados. ERROR: KASAN: use-after-free en ucma_cleanup_multicast drivers/infiniband/core/ucma.c:491 [en línea] ERROR: KASAN: use-after-free en ucma_destroy_private_ctx+0x914/0xb70 drivers/infiniband/core/ucma.c: 579 Lectura de tamaño 8 en la dirección ffff88801bb74b00 mediante la tarea syz-executor.1/25529 CPU: 0 PID: 25529 Comm: syz-executor.1 No contaminado 5.16.0-rc7-syzkaller #0 Nombre de hardware: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Seguimiento de llamadas: __dump_stack lib/dump_stack.c:88 [en línea] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description.constprop.0.cold+0x8d/0x320 mm/kasan /report.c:247 __kasan_report mm/kasan/report.c:433 [en línea] kasan_report.cold+0x83/0xdf mm/kasan/report.c:450 ucma_cleanup_multicast drivers/infiniband/core/ucma.c:491 [en línea] ucma_destroy_private_ctx+0x914/0xb70 controladores/infiniband/core/ucma.c:579 ucma_destroy_id+0x1e6/0x280 controladores/infiniband/core/ucma.c:614 ucma_write+0x25c/0x350 controladores/infiniband/core/ucma.c:1732 vfs_write+ 0x28e/0xae0 fs/read_write.c:588 ksys_write+0x1ee/0x250 fs/read_write.c:643 do_syscall_x64 arch/x86/entry/common.c:50 [en línea] do_syscall_64+0x35/0xb0 arch/x86/entry/common. c:80 Entry_SYSCALL_64_after_hwframe+0x44/0xae Actualmente, la búsqueda de xarray puede tocar un mc que se libera simultáneamente ya que xa_for_each() no está rodeado por ningún candado. En lugar de mantener el bloqueo durante un escaneo completo, manténgalo solo para los elementos afectados, que generalmente son una lista vacía.

20 Jun 2024, 12:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-06-20 12:15

Updated : 2024-09-18 16:09


NVD link : CVE-2022-48726

Mitre link : CVE-2022-48726

CVE.ORG link : CVE-2022-48726


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-416

Use After Free