CVE-2026-98854
En el kernel de Linux se ha resuelto la siguiente vulnerabilidad:
of/overlay: tratar solo un identificador de changeset positivo como registrado
of_overlay_fdt_apply() almacena el valor de retorno de idr_alloc() en ovcs->id antes de comprobarlo. En caso de fallo, el id almacenado es negativo, la comprobación "if (ovcs->id)" de free_overlay_changeset() se cumple, se invoca idr_remove() con un id negativo y se ejecuta list_del() sobre ovcs->ovcs_list, que no se inicializa hasta después de la asignación del id. Un fallo de asignación en ese punto provoca una desreferenciación de NULL.
Hacer que free_overlay_changeset() trate como registrado solo un id estrictamente positivo. El resto de la función ya gestiona un ovcs parcialmente inicializado, por lo que la ruta de error se mantiene como un simple goto err_free_ovcs.
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.16 %
- Percentil entre todas las CVEs puntuadas
- 4
- 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
Mostrar las 4 referencias
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-98854",
"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": "61b4de4e0b384f4a22c55c3bada604da49cec4e1",
"lessThan": "c08a54df9d33dcd6ff089adc9434b2c008af3a39",
"versionType": "git"
},
{
"status": "affected",
"version": "61b4de4e0b384f4a22c55c3bada604da49cec4e1",
"lessThan": "0d1525fdcd3355672b7485d61e55df6824ab5ad1",
"versionType": "git"
},
{
"status": "affected",
"version": "61b4de4e0b384f4a22c55c3bada604da49cec4e1",
"lessThan": "c875407c34dadaef0599834ad9c815f4c9f50d15",
"versionType": "git"
},
{
"status": "affected",
"version": "61b4de4e0b384f4a22c55c3bada604da49cec4e1",
"lessThan": "44081d708b5b885487bac792db78324b7b4c267d",
"versionType": "git"
}
],
"programFiles": [
"drivers/of/overlay.c"
],
"defaultStatus": "unaffected"
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "4.15"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "4.15",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "6.12.113",
"versionType": "semver",
"lessThanOrEqual": "6.12.*"
},
{
"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/of/overlay.c"
],
"defaultStatus": "affected"
}
]
}
],
"published": "2026-10-18T16:17:39.833",
"references": [
{
"url": "https://git.kernel.org/stable/c/0d1525fdcd3355672b7485d61e55df6824ab5ad1",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/44081d708b5b885487bac792db78324b7b4c267d",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/c08a54df9d33dcd6ff089adc9434b2c008af3a39",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/c875407c34dadaef0599834ad9c815f4c9f50d15",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"vulnStatus": "Received",
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nof/overlay: only treat a positive changeset id as registered\n\nof_overlay_fdt_apply() stores the idr_alloc() return value in\novcs->id before checking it. On failure the stored id is negative,\nfree_overlay_changeset()'s \"if (ovcs->id)\" check passes, idr_remove()\nis called with a negative id and list_del() runs on ovcs->ovcs_list,\nwhich is not initialized until after the id allocation. An allocation\nfailure at that point dereferences NULL.\n\nMake free_overlay_changeset() treat only a strict-positive id as\nregistered. The rest of the function already copes with a\npartially-initialized ovcs, so the error path stays a plain\ngoto err_free_ovcs."
}
],
"lastModified": "2026-10-19T10:19:49.490",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}