CVE-2026-98635
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
scsi: block: Fix zones_cond out-of-bounds write on zone report
blk_revalidate_disk_zones() dimensiona el array zones_cond a partir de la capacidad del disco y del tamaño de zona, pero el índice que utiliza blk_revalidate_zone_cond() proviene del recorrido de report_zones() controlado por el dispositivo y nunca se comprueba frente al tamaño del array. Un dispositivo que informe de más zonas de las que caben en el array hace que blk_zone_set_cond() escriba fuera de límites.
Una forma de alcanzar esta situación es mediante un número de zonas que supere los 32 bits: tanto blk_revalidate_zone_args.nr_zones como struct zoned_disk_info.nr_zones son unsigned int, por lo que un disco que anuncie más de UINT_MAX zonas (p. ej.
Leer descripción completaMostrar menos
2^32 + 1024 zonas de un único bloque lógico de 512 bytes) ve truncado su número de zonas a un valor pequeño, lo que reduce el tamaño del array mientras el recorrido del informe sigue contando hacia arriba.
Comprobar el índice frente al tamaño del array antes de almacenar la condición de la zona, y rechazar la revalidación cuando el número de zonas no quepa en 32 bits.
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.17 %
- Percentil entre todas las CVEs puntuadas
- 6
- 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-98635",
"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": "6e945ffb6555705cf20b1fcdc21a139911562995",
"lessThan": "ca688bb207957cffa5a8cad207329b0dcac1f2c0",
"versionType": "git"
},
{
"status": "affected",
"version": "6e945ffb6555705cf20b1fcdc21a139911562995",
"lessThan": "7c431d61b69a3fd0784c20aa4cd0b8fb501b5653",
"versionType": "git"
}
],
"programFiles": [
"block/blk-zoned.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.19"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "6.19",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "7.2.9",
"versionType": "semver",
"lessThanOrEqual": "7.2.*"
},
{
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix",
"lessThanOrEqual": "*"
}
],
"programFiles": [
"block/blk-zoned.c"
],
"defaultStatus": "affected"
}
]
}
],
"published": "2026-10-18T16:17:16.607",
"references": [
{
"url": "https://git.kernel.org/stable/c/7c431d61b69a3fd0784c20aa4cd0b8fb501b5653",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/ca688bb207957cffa5a8cad207329b0dcac1f2c0",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"vulnStatus": "Received",
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: block: Fix zones_cond out-of-bounds write on zone report\n\nblk_revalidate_disk_zones() sizes the zones_cond array from the disk\ncapacity and zone size, but the index used by blk_revalidate_zone_cond()\ncomes from the device-driven report_zones() walk and is never checked\nagainst the array size. A device reporting more zones than fit the array\nmakes blk_zone_set_cond() write out of bounds.\n\nOne way to reach this is a zone count exceeding 32 bits: both\nblk_revalidate_zone_args.nr_zones and struct zoned_disk_info.nr_zones are\nunsigned int, so a disk advertising more than UINT_MAX zones (e.g. 2^32 +\n1024 zones of one 512-byte logical block) gets its zone count truncated to\na small value, undersizing the array while the report walk keeps counting\nupward.\n\nCheck the index against the array size before storing the zone condition,\nand refuse to revalidate when the zone count does not fit 32 bits."
}
],
"lastModified": "2026-10-19T10:19:27.747",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}