CVE-2026-98748
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
serial: 8250_bcm7271: corregir use-after-free (uso de memoria liberada) en brcmuart_remove()
brcmuart_handle_irq() inicia priv->hrt para sortear una peculiaridad del núcleo 8250 relacionada con el tiempo de espera de recepción cuando el control de flujo por hardware está habilitado; la función de retrollamada del temporizador brcmuart_hrtimer_func() desreferencia priv.
brcmuart_remove() cancela el hrtimer antes de anular el registro del puerto, de modo que una interrupción de tiempo de espera de recepción que llegue entre ambas operaciones vuelve a armar el temporizador. Después de que devm libere priv, la retrollamada se ejecuta sobre memoria liberada.
Leer descripción completaMostrar menos
Anular primero el registro del puerto y cancelar después el hrtimer. serial8250_unregister_port() apaga el puerto y libera su IRQ, de modo que brcmuart_handle_irq() ya no puede reiniciar el temporizador, y la llamada final a hrtimer_cancel() drena cualquier temporizador que se hubiera armado antes o durante la anulación del registro.
Este problema fue detectado por una herramienta interna de análisis estático.
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
Mostrar las 4 referencias
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-98748",
"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": "41a469482de257ea8db43cf74b6311bd055de030",
"lessThan": "f5ce06e648d775cc1ccf66f4f594bb8b559a7d8e",
"versionType": "git"
},
{
"status": "affected",
"version": "41a469482de257ea8db43cf74b6311bd055de030",
"lessThan": "e32440fa536af96bdbc61d933a7c3a920b965edc",
"versionType": "git"
},
{
"status": "affected",
"version": "41a469482de257ea8db43cf74b6311bd055de030",
"lessThan": "0794ba5332754866b2f1c0cca668775be3ffcf0a",
"versionType": "git"
},
{
"status": "affected",
"version": "41a469482de257ea8db43cf74b6311bd055de030",
"lessThan": "189b9dc8c96ec9486482f27c1372b04a7152175e",
"versionType": "git"
}
],
"programFiles": [
"drivers/tty/serial/8250/8250_bcm7271.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.13"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "5.13",
"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/tty/serial/8250/8250_bcm7271.c"
],
"defaultStatus": "affected"
}
]
}
],
"published": "2026-10-18T16:17:28.557",
"references": [
{
"url": "https://git.kernel.org/stable/c/0794ba5332754866b2f1c0cca668775be3ffcf0a",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/189b9dc8c96ec9486482f27c1372b04a7152175e",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/e32440fa536af96bdbc61d933a7c3a920b965edc",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/f5ce06e648d775cc1ccf66f4f594bb8b559a7d8e",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"vulnStatus": "Received",
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nserial: 8250_bcm7271: fix use-after-free in brcmuart_remove()\n\nbrcmuart_handle_irq() starts priv->hrt to work around a receive-timeout\nquirk of the 8250 core when hardware flow control is enabled; the timer\ncallback brcmuart_hrtimer_func() dereferences priv.\n\nbrcmuart_remove() cancels the hrtimer before it unregisters the port, so\na receive-timeout interrupt that arrives in between re-arms the timer.\nAfter devm frees priv, the callback runs on freed memory.\n\nUnregister the port before cancelling the hrtimer.\nserial8250_unregister_port() shuts the port down and frees its IRQ, so\nbrcmuart_handle_irq() can no longer restart the timer, and the final\nhrtimer_cancel() drains any timer that was armed before or during the\nunregister.\n\nThis issue was found by an in-house static analysis tool."
}
],
"lastModified": "2026-10-19T10:19:38.970",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}