CVE-2026-98628
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
bpf: Hacer que las reescrituras de instrucciones posteriores a la verificación puedan interrumpirse
Tras devolver do_check(), el verificador ejecuta varias pasadas de reescritura de instrucciones. Algunas de ellas parchean o eliminan una instrucción cada vez. Cada operación desplaza los arrays restantes de instrucciones y de datos auxiliares y ajusta todos los desplazamientos de los saltos, por lo que el trabajo total es cuadrático en la longitud del programa.
Un cargador con privilegios puede enviar 131072 saltos incondicionales a cero seguidos de un return válido.
Leer descripción completaMostrar menos
La verificación termina rápidamente, pero bpf_opt_remove_nops() tarda mucho tiempo en eliminar cada salto por separado. Como este trabajo posterior a la verificación no comprueba señales ni cede la CPU, una señal SIGKILL pendiente no puede terminar la tarea hasta que finalice la reescritura.
Convertir bpf_patch_insn_data() y verifier_remove_insns() en puntos comunes de cancelación y de reprogramación. Estas funciones se ejecutan en el contexto de proceso de BPF_PROG_LOAD, y bpf_patch_insn_data() ya puede dormirse mientras reasigna los datos auxiliares.
La ofuscación de constantes (constant blinding) interrumpida se notifica como -EINTR y se propaga por ambas rutas del JIT, incluidos los kernels que permiten el recurso de volver al intérprete. Los demás fallos de ofuscación mantienen el comportamiento de fallback existente.
Esto no reduce el coste cuadrático de las pasadas de reescritura, pero hace que el trabajo sea interrumpible y permite que un cargador terminado se cierre con rapidez.
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.19 %
- Percentil entre todas las CVEs puntuadas
- 8
- 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-98628",
"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": "52875a04f4b26e7ef30a288ea096f7cfec0e93cd",
"lessThan": "56dc616d7a1f7d134d3e101c455e62b0a24d0cfd",
"versionType": "git"
},
{
"status": "affected",
"version": "52875a04f4b26e7ef30a288ea096f7cfec0e93cd",
"lessThan": "261b61d3735b042ae25634f795c4540be0fc140c",
"versionType": "git"
}
],
"programFiles": [
"kernel/bpf/core.c",
"kernel/bpf/fixups.c"
],
"defaultStatus": "unaffected"
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "5.1"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "5.1",
"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": [
"kernel/bpf/core.c",
"kernel/bpf/fixups.c"
],
"defaultStatus": "affected"
}
]
}
],
"published": "2026-10-18T16:17:15.860",
"references": [
{
"url": "https://git.kernel.org/stable/c/261b61d3735b042ae25634f795c4540be0fc140c",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/56dc616d7a1f7d134d3e101c455e62b0a24d0cfd",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"vulnStatus": "Received",
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Make post-verification instruction rewrites killable\n\nAfter do_check() returns, the verifier runs several instruction rewrite\npasses. Some of them patch or remove one instruction at a time. Each\noperation moves the remaining instruction and auxiliary-data arrays and\nadjusts all branch offsets, making the overall work quadratic in the\nprogram length.\n\nA privileged loader can submit 131072 unconditional jumps by zero followed\nby a valid return. Verification finishes quickly, but bpf_opt_remove_nops()\nthen spends a long time removing each jump separately. Since this\npost-verification work neither checks for signals nor reschedules, a pending\nSIGKILL cannot terminate the task until the rewrite finishes.\n\nMake bpf_patch_insn_data() and verifier_remove_insns() common cancellation\nand rescheduling points. These helpers run from BPF_PROG_LOAD process\ncontext, and bpf_patch_insn_data() can already sleep while reallocating\nauxiliary data.\n\nReport interrupted constant blinding as -EINTR and propagate it through\nboth JIT paths, including kernels that permit interpreter fallback.\nOther blinding failures retain the existing fallback behavior.\n\nThis does not reduce the quadratic cost of the rewrite passes, but it makes\nthe work preemptible and allows a killed loader to be torn down promptly."
}
],
"lastModified": "2026-10-19T10:19:27.050",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}