CVE-2023-54323
In the Linux kernel, the following vulnerability has been resolved:
cxl/pmem: Fix nvdimm registration races
A loop of the form:
...fails with the following crash signature:
...namely that the bottom half of async nvdimm device registration runs after the CXL has already torn down the context that cxl_pmem_ctl() needs. Unlike the ACPI NFIT case that benefits from launching multiple nvdimm device registrations in parallel from those listed in the table, CXL is already marked PROBE_PREFER_ASYNCHRONOUS. So provide for a synchronous registration path to preclude this scenario.
Detalles técnicos trazas, registros y código del informe original
while true; do modprobe cxl_pci; modprobe -r cxl_pci; done
BUG: kernel NULL pointer dereference, address: 0000000000000040
[..]
RIP: 0010:cxl_internal_send_cmd+0x5/0xb0 [cxl_core]
[..]
Call Trace:
<TASK>
cxl_pmem_ctl+0x121/0x240 [cxl_pmem]
nvdimm_get_config_data+0xd6/0x1a0 [libnvdimm]
nd_label_data_init+0x135/0x7e0 [libnvdimm]
nvdimm_probe+0xd6/0x1c0 [libnvdimm]
nvdimm_bus_probe+0x7a/0x1e0 [libnvdimm]
really_probe+0xde/0x380
__driver_probe_device+0x78/0x170
driver_probe_device+0x1f/0x90
__device_attach_driver+0x85/0x110
bus_for_each_drv+0x7d/0xc0
__device_attach+0xb4/0x1e0
bus_probe_device+0x9f/0xc0
device_add+0x445/0x9c0
nd_async_device_register+0xe/0x40 [libnvdimm]
async_run_entry_fn+0x30/0x130CVSS
NVD no ha asignado puntuación CVSS a esta CVE (habitual desde el cambio de política de abril de 2026).
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días: 0.18%
- Percentil entre todas las CVEs puntuadas: 7
- Fecha de la puntuación: 6/10/2026
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
Tecnologías afectadas (1)
⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.
Referencias
JSON original (NVD)
Mostrar
{
"id": "CVE-2023-54323",
"cveTags": [],
"metrics": {},
"affected": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"affectedData": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "21083f51521fb0f60dbac591f175c3ed48435af4",
"lessThan": "a371788d4f4a7f59eecd22644331d599979fd283",
"versionType": "git"
},
{
"status": "affected",
"version": "21083f51521fb0f60dbac591f175c3ed48435af4",
"lessThan": "18c65667fa9104780eeaa0dc1bc240f0c2094772",
"versionType": "git"
},
{
"status": "affected",
"version": "21083f51521fb0f60dbac591f175c3ed48435af4",
"lessThan": "f57aec443c24d2e8e1f3b5b4856aea12ddda4254",
"versionType": "git"
}
],
"programFiles": [
"drivers/cxl/pmem.c",
"drivers/nvdimm/bus.c",
"drivers/nvdimm/dimm_devs.c",
"drivers/nvdimm/nd-core.h",
"include/linux/libnvdimm.h"
],
"defaultStatus": "unaffected"
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "5.14"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "5.14",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "6.1.16",
"versionType": "semver",
"lessThanOrEqual": "6.1.*"
},
{
"status": "unaffected",
"version": "6.2.3",
"versionType": "semver",
"lessThanOrEqual": "6.2.*"
},
{
"status": "unaffected",
"version": "6.3",
"versionType": "original_commit_for_fix",
"lessThanOrEqual": "*"
}
],
"programFiles": [
"drivers/cxl/pmem.c",
"drivers/nvdimm/bus.c",
"drivers/nvdimm/dimm_devs.c",
"drivers/nvdimm/nd-core.h",
"include/linux/libnvdimm.h"
],
"defaultStatus": "affected"
}
]
}
],
"published": "2025-12-30T13:16:21.627",
"references": [
{
"url": "https://git.kernel.org/stable/c/18c65667fa9104780eeaa0dc1bc240f0c2094772",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/a371788d4f4a7f59eecd22644331d599979fd283",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/f57aec443c24d2e8e1f3b5b4856aea12ddda4254",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"vulnStatus": "Deferred",
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncxl/pmem: Fix nvdimm registration races\n\nA loop of the form:\n\n while true; do modprobe cxl_pci; modprobe -r cxl_pci; done\n\n...fails with the following crash signature:\n\n BUG: kernel NULL pointer dereference, address: 0000000000000040\n [..]\n RIP: 0010:cxl_internal_send_cmd+0x5/0xb0 [cxl_core]\n [..]\n Call Trace:\n <TASK>\n cxl_pmem_ctl+0x121/0x240 [cxl_pmem]\n nvdimm_get_config_data+0xd6/0x1a0 [libnvdimm]\n nd_label_data_init+0x135/0x7e0 [libnvdimm]\n nvdimm_probe+0xd6/0x1c0 [libnvdimm]\n nvdimm_bus_probe+0x7a/0x1e0 [libnvdimm]\n really_probe+0xde/0x380\n __driver_probe_device+0x78/0x170\n driver_probe_device+0x1f/0x90\n __device_attach_driver+0x85/0x110\n bus_for_each_drv+0x7d/0xc0\n __device_attach+0xb4/0x1e0\n bus_probe_device+0x9f/0xc0\n device_add+0x445/0x9c0\n nd_async_device_register+0xe/0x40 [libnvdimm]\n async_run_entry_fn+0x30/0x130\n\n...namely that the bottom half of async nvdimm device registration runs\nafter the CXL has already torn down the context that cxl_pmem_ctl()\nneeds. Unlike the ACPI NFIT case that benefits from launching multiple\nnvdimm device registrations in parallel from those listed in the table,\nCXL is already marked PROBE_PREFER_ASYNCHRONOUS. So provide for a\nsynchronous registration path to preclude this scenario."
},
{
"lang": "es",
"value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\ncxl/pmem: Soluciona las condiciones de carrera en el registro de nvdimm\n\nUn bucle de la forma:\n\n while true; do modprobe cxl_pci; modprobe -r cxl_pci; done\n\n...falla con la siguiente firma de fallo:\n\n BUG: kernel NULL pointer dereference, address: 0000000000000040\n [..]\n RIP: 0010:cxl_internal_send_cmd+0x5/0xb0 [cxl_core]\n [..]\n Call Trace:\n \n cxl_pmem_ctl+0x121/0x240 [cxl_pmem]\n nvdimm_get_config_data+0xd6/0x1a0 [libnvdimm]\n nd_label_data_init+0x135/0x7e0 [libnvdimm]\n nvdimm_probe+0xd6/0x1c0 [libnvdimm]\n nvdimm_bus_probe+0x7a/0x1e0 [libnvdimm]\n really_probe+0xde/0x380\n __driver_probe_device+0x78/0x170\n driver_probe_device+0x1f/0x90\n __device_attach_driver+0x85/0x110\n bus_for_each_drv+0x7d/0xc0\n __device_attach+0xb4/0x1e0\n bus_probe_device+0x9f/0xc0\n device_add+0x445/0x9c0\n nd_async_device_register+0xe/0x40 [libnvdimm]\n async_run_entry_fn+0x30/0x130\n\n...es decir, que la mitad inferior del registro asíncrono de dispositivos nvdimm se ejecuta después de que el CXL ya ha desmantelado el contexto que cxl_pmem_ctl() necesita. A diferencia del caso ACPI NFIT que se beneficia de lanzar múltiples registros de dispositivos nvdimm en paralelo de los listados en la tabla, CXL ya está marcado como PROBE_PREFER_ASYNCHRONOUS. Así que se proporciona una ruta de registro síncrono para evitar este escenario."
}
],
"lastModified": "2026-06-17T06:47:13.623",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}