CVE-2025-21850

In the Linux kernel, the following vulnerability has been resolved: nvmet: Fix crash when a namespace is disabled The namespace percpu counter protects pending I/O, and we can only safely diable the namespace once the counter drop to zero. Otherwise we end up with a crash when running blktests/nvme/058 (eg for loop transport): [ 2352.930426] [ T53909] Oops: general protection fault, probably for non-canonical address 0xdffffc0000000005: 0000 [#1] PREEMPT SMP KASAN PTI [ 2352.930431] [ T53909] KASAN: null-ptr-deref in range [0x0000000000000028-0x000000000000002f] [ 2352.930434] [ T53909] CPU: 3 UID: 0 PID: 53909 Comm: kworker/u16:5 Tainted: G W 6.13.0-rc6 #232 [ 2352.930438] [ T53909] Tainted: [W]=WARN [ 2352.930440] [ T53909] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-3.fc41 04/01/2014 [ 2352.930443] [ T53909] Workqueue: nvmet-wq nvme_loop_execute_work [nvme_loop] [ 2352.930449] [ T53909] RIP: 0010:blkcg_set_ioprio+0x44/0x180 as the queue is already torn down when calling submit_bio(); So we need to init the percpu counter in nvmet_ns_enable(), and wait for it to drop to zero in nvmet_ns_disable() to avoid having I/O pending after the namespace has been disabled.
Configurations

Configuration 1 (hide)

OR 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:*:*:*:*:*:*

History

13 Mar 2025, 16:29

Type Values Removed Values Added
CWE CWE-835
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
CPE cpe:2.3:o:linux:linux_kernel:6.14:rc2:*:*:*:*:*:*
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:rc3:*:*:*:*:*:*
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: nvmet: corrige el fallo cuando se deshabilita un espacio de nombres. El contador por CPU del espacio de nombres protege la E/S pendiente y solo podemos deshabilitar de forma segura el espacio de nombres una vez que el contador cae a cero. De lo contrario, terminamos con un bloqueo al ejecutar blktests/nvme/058 (por ejemplo, para el transporte de bucle): [2352.930426] [T53909] Ups: error de protección general, probablemente para la dirección no canónica 0xdffffc0000000005: 0000 [#1] PREEMPT SMP KASAN PTI [2352.930431] [T53909] KASAN: null-ptr-deref en el rango [0x0000000000000028-0x000000000000002f] [2352.930434] [T53909] CPU: 3 UID: 0 PID: 53909 Comm: kworker/u16:5 Tainted: GW 6.13.0-rc6 #232 [ 2352.930438] [ T53909] Contaminado: [W]=WARN [ 2352.930440] [ T53909] Nombre del hardware: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-3.fc41 01/04/2014 [ 2352.930443] [ T53909] Cola de trabajo: nvmet-wq nvme_loop_execute_work [nvme_loop] [ 2352.930449] [ T53909] RIP: 0010:blkcg_set_ioprio+0x44/0x180 ya que la cola ya está desactivada al llamar a submit_bio(); Entonces, necesitamos inicializar el contador por CPU en nvmet_ns_enable() y esperar hasta que caiga a cero en nvmet_ns_disable() para evitar tener E/S pendiente después de que se haya deshabilitado el espacio de nombres.
References () https://git.kernel.org/stable/c/4082326807072b71496501b6a0c55ffe8d5092a5 - () https://git.kernel.org/stable/c/4082326807072b71496501b6a0c55ffe8d5092a5 - Patch
References () https://git.kernel.org/stable/c/cc0607594f6813342b27c752c6fb6f6eb9980cb5 - () https://git.kernel.org/stable/c/cc0607594f6813342b27c752c6fb6f6eb9980cb5 - Patch
First Time Linux
Linux linux Kernel

12 Mar 2025, 10:15

Type Values Removed Values Added
New CVE

Information

Published : 2025-03-12 10:15

Updated : 2025-03-13 16:29


NVD link : CVE-2025-21850

Mitre link : CVE-2025-21850

CVE.ORG link : CVE-2025-21850


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-835

Loop with Unreachable Exit Condition ('Infinite Loop')