CVE-2025-22010

In the Linux kernel, the following vulnerability has been resolved: RDMA/hns: Fix soft lockup during bt pages loop Driver runs a for-loop when allocating bt pages and mapping them with buffer pages. When a large buffer (e.g. MR over 100GB) is being allocated, it may require a considerable loop count. This will lead to soft lockup: watchdog: BUG: soft lockup - CPU#27 stuck for 22s! ... Call trace: hem_list_alloc_mid_bt+0x124/0x394 [hns_roce_hw_v2] hns_roce_hem_list_request+0xf8/0x160 [hns_roce_hw_v2] hns_roce_mtr_create+0x2e4/0x360 [hns_roce_hw_v2] alloc_mr_pbl+0xd4/0x17c [hns_roce_hw_v2] hns_roce_reg_user_mr+0xf8/0x190 [hns_roce_hw_v2] ib_uverbs_reg_mr+0x118/0x290 watchdog: BUG: soft lockup - CPU#35 stuck for 23s! ... Call trace: hns_roce_hem_list_find_mtt+0x7c/0xb0 [hns_roce_hw_v2] mtr_map_bufs+0xc4/0x204 [hns_roce_hw_v2] hns_roce_mtr_create+0x31c/0x3c4 [hns_roce_hw_v2] alloc_mr_pbl+0xb0/0x160 [hns_roce_hw_v2] hns_roce_reg_user_mr+0x108/0x1c0 [hns_roce_hw_v2] ib_uverbs_reg_mr+0x120/0x2bc Add a cond_resched() to fix soft lockup during these loops. In order not to affect the allocation performance of normal-size buffer, set the loop count of a 100GB MR as the threshold to call cond_resched().
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:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc7:*:*:*:*:*:*

History

10 Apr 2025, 13:15

Type Values Removed Values Added
CWE CWE-667
First Time Linux linux Kernel
Linux
References
  • () https://git.kernel.org/stable/c/461eb4ddede266df8f181f578732bb01742c3fd6 -
  • () https://git.kernel.org/stable/c/efe544462fc0b499725364f90bd0f8bbf16f861a -
References () https://git.kernel.org/stable/c/13a52f6c9ff99f7d88f81da535cb4e85eade662b - () https://git.kernel.org/stable/c/13a52f6c9ff99f7d88f81da535cb4e85eade662b - Patch
References () https://git.kernel.org/stable/c/25655580136de59ec89f09089dd28008ea440fc9 - () https://git.kernel.org/stable/c/25655580136de59ec89f09089dd28008ea440fc9 - Patch
References () https://git.kernel.org/stable/c/4104b0023ff66b5df900d23dbf38310893deca79 - () https://git.kernel.org/stable/c/4104b0023ff66b5df900d23dbf38310893deca79 - Patch
References () https://git.kernel.org/stable/c/975355faba56c0751292ed15a90c3e2c7dc0aad6 - () https://git.kernel.org/stable/c/975355faba56c0751292ed15a90c3e2c7dc0aad6 - Patch
References () https://git.kernel.org/stable/c/9ab20fec7a1ce3057ad86afd27bfd08420b7cd11 - () https://git.kernel.org/stable/c/9ab20fec7a1ce3057ad86afd27bfd08420b7cd11 - Patch
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
CPE cpe:2.3:o:linux:linux_kernel:6.14:rc7:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.14:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

08 Apr 2025, 18:13

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: RDMA/hns: Se corrige el bloqueo suave durante el bucle de páginas bt. El controlador ejecuta un bucle for al asignar páginas bt y mapearlas con páginas de búfer. Al asignar un búfer grande (por ejemplo, un MR de más de 100 GB), puede requerirse un número considerable de bucles. Esto provocará un bloqueo suave: watchdog: BUG: bloqueo suave - ¡CPU n.º 27 bloqueada durante 22 s! ... Rastreo de llamadas: hem_list_alloc_mid_bt+0x124/0x394 [hns_roce_hw_v2] hns_roce_hem_list_request+0xf8/0x160 [hns_roce_hw_v2] hns_roce_mtr_create+0x2e4/0x360 [hns_roce_hw_v2] alloc_mr_pbl+0xd4/0x17c [hns_roce_hw_v2] hns_roce_reg_user_mr+0xf8/0x190 [hns_roce_hw_v2] ib_uverbs_reg_mr+0x118/0x290 perro guardián: ERROR: bloqueo suave - ¡CPU n.º 35 bloqueada durante 23 s! ... Seguimiento de llamadas: hns_roce_hem_list_find_mtt+0x7c/0xb0 [hns_roce_hw_v2] mtr_map_bufs+0xc4/0x204 [hns_roce_hw_v2] hns_roce_mtr_create+0x31c/0x3c4 [hns_roce_hw_v2] alloc_mr_pbl+0xb0/0x160 [hns_roce_hw_v2] hns_roce_reg_user_mr+0x108/0x1c0 [hns_roce_hw_v2] ib_uverbs_reg_mr+0x120/0x2bc Agregue un cond_resched() para corregir el bloqueo suave durante estos bucles. Para no afectar el rendimiento de asignación de un búfer de tamaño normal, establezca el recuento de bucles de un MR de 100 GB como el umbral para llamar a cond_resched().

08 Apr 2025, 09:15

Type Values Removed Values Added
New CVE

Information

Published : 2025-04-08 09:15

Updated : 2025-04-10 13:15


NVD link : CVE-2025-22010

Mitre link : CVE-2025-22010

CVE.ORG link : CVE-2025-22010


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-667

Improper Locking