CVE-2026-98723
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
nvmet: copiar el hostid en el ctrl antes de crear los pc_refs de PR
El commit 6202783184bf ("nvmet: Improve nvmet_alloc_ctrl() interface and implementation") añadió una segunda llamada uuid_copy() de args->hostid cerca del final de nvmet_alloc_ctrl(), y el commit 7b658153f1b8 ("nvmet: Remove duplicate uuid_copy") eliminó la copia original que estaba antes de nvmet_ctrl_init_pr() en lugar de la nueva.
Desde entonces, nvmet_ctrl_init_pr() toma una instantánea de ctrl->hostid en los pc_ref de reserva por controlador y por espacio de nombres, mientras que el uuid_copy() de los datos de conexión se ejecuta más tarde, después de que el controlador se haya publicado.
Leer descripción completaMostrar menos
El ctrl se asigna con kzalloc(), así que cada pc_ref creado por esta ruta almacena el UUID nulo.
pc_ref->hostid tiene un único consumidor: nvmet_pr_set_ctrl_to_abort(), que lo compara con el hostid del registrante expulsado para terminar y drenar las operaciones de E/S en curso de la víctima en Preempt and Abort. Con el UUID nulo, la comparación nunca coincide, por lo que, siempre que exista un espacio de nombres con reservas habilitadas antes de que un host se conecte (lo que incluye todas las reconexiones), Preempt and Abort se degrada silenciosamente a un simple Preempt: el host que expulsa ve un resultado correcto mientras la E/S en curso de la víctima sigue en vuelo.
Copiar el hostid en el punto donde se consume el resto de los datos de conexión, antes de que el controlador se publique y antes de que nvmet_ctrl_init_pr() tome su instantánea.
Traducción automática del texto original de NVD (en inglés).
CVSS
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.20 %
- Percentil entre todas las CVEs puntuadas
- 9
- Fecha de la puntuación
- 20/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-2026-98723",
"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": "7b658153f1b8a79ed98980f2fef7b92a66aeb9cd",
"lessThan": "d3d6d7efdacc08616d23b3ac42272a494951dc0f",
"versionType": "git"
},
{
"status": "affected",
"version": "7b658153f1b8a79ed98980f2fef7b92a66aeb9cd",
"lessThan": "23194531595c5d1d4454e3a607b0c8fc0c4e8695",
"versionType": "git"
},
{
"status": "affected",
"version": "7b658153f1b8a79ed98980f2fef7b92a66aeb9cd",
"lessThan": "5211fed41d7ec90e9ab7239dc4bffffe4d0b2b62",
"versionType": "git"
}
],
"programFiles": [
"drivers/nvme/target/core.c"
],
"defaultStatus": "unaffected"
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "6.15"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "6.15",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "6.18.56",
"versionType": "semver",
"lessThanOrEqual": "6.18.*"
},
{
"status": "unaffected",
"version": "7.2.10",
"versionType": "semver",
"lessThanOrEqual": "7.2.*"
},
{
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix",
"lessThanOrEqual": "*"
}
],
"programFiles": [
"drivers/nvme/target/core.c"
],
"defaultStatus": "affected"
}
]
}
],
"published": "2026-10-18T16:17:25.917",
"references": [
{
"url": "https://git.kernel.org/stable/c/23194531595c5d1d4454e3a607b0c8fc0c4e8695",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/5211fed41d7ec90e9ab7239dc4bffffe4d0b2b62",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/d3d6d7efdacc08616d23b3ac42272a494951dc0f",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"vulnStatus": "Received",
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvmet: copy the hostid into the ctrl before creating PR pc_refs\n\nCommit 6202783184bf (\"nvmet: Improve nvmet_alloc_ctrl() interface and\nimplementation\") added a second uuid_copy() of args->hostid near the end\nof nvmet_alloc_ctrl(), and commit 7b658153f1b8 (\"nvmet: Remove duplicate\nuuid_copy\") removed the original copy that sat before\nnvmet_ctrl_init_pr() instead of the new one.\n\nSince then nvmet_ctrl_init_pr() snapshots ctrl->hostid into the\nper-controller per-namespace reservation refs while the uuid_copy()\nfrom the connect data runs later, after the controller is published.\nThe ctrl is allocated with kzalloc(), so every pc_ref created on this\npath stores the nil UUID.\n\npc_ref->hostid has a single consumer: nvmet_pr_set_ctrl_to_abort()\nmatches it against the preempted registrant's hostid to kill and drain\nthe victim's in-flight I/O for Preempt and Abort. The match can never\nhit with the nil UUID, so whenever a namespace with reservations\nenabled exists before a host connects, which includes every reconnect,\nPreempt and Abort silently degrades into a plain Preempt: the\npreempting host sees success while the victim's in-flight I/O is still\nin the air.\n\nCopy the hostid where the rest of the connect data is consumed, before\nthe controller is published and before nvmet_ctrl_init_pr() takes its\nsnapshot."
}
],
"lastModified": "2026-10-19T10:19:36.500",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}