CVE-2026-98763
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
usb: core: borrar tanto ep_in como ep_out para los endpoints de control distintos de ep0
En usb_enable_endpoint(), los endpoints de control distintos de cero (donde usb_endpoint_xfer_control(&ep->desc) es verdadero) rellenan tanto dev->ep_in[epnum] como dev->ep_out[epnum] con el mismo puntero a struct usb_host_endpoint.
Sin embargo, usb_disable_endpoint() solo borra dev->ep_out[epnum] o dev->ep_in[epnum] según el bit de dirección de epaddr cuando reset_hardware está activado, dejando la ranura del array de la dirección opuesta apuntando al endpoint deshabilitado o liberado.
Leer descripción completaMostrar menos
Borrar tanto dev->ep_out[epnum] como dev->ep_in[epnum] al deshabilitar un endpoint de control distinto de ep0 con reset_hardware activado, y actualizar en consecuencia el kerneldoc de la función.
Probado en QEMU contra Linux 7.3.0-rc3 usando dummy_hcd y raw-gadget para enumerar un dispositivo USB con un endpoint de control distinto de cero (bEndpointAddress 0x01, bmAttributes USB_ENDPOINT_XFER_CONTROL), verificando que tanto dev->ep_in[1] como dev->ep_out[1] quedan borrados cuando se deshabilita la interfaz.
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-98763",
"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": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"lessThan": "7a9f61476b0e8002092a52ee8295edeeb0a28d1e",
"versionType": "git"
},
{
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"lessThan": "1da16c46b8d7101b74bc2d72a04e23cf5c7ddea1",
"versionType": "git"
},
{
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"lessThan": "c50413ecb662ea43c7f487632c8114721743a277",
"versionType": "git"
},
{
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"lessThan": "0e8baa78d872f2db440d8b9ded946ab8dceb89eb",
"versionType": "git"
}
],
"programFiles": [
"drivers/usb/core/message.c"
],
"defaultStatus": "unaffected"
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "2.6.12",
"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/usb/core/message.c"
],
"defaultStatus": "affected"
}
]
}
],
"published": "2026-10-18T16:17:30.113",
"references": [
{
"url": "https://git.kernel.org/stable/c/0e8baa78d872f2db440d8b9ded946ab8dceb89eb",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/1da16c46b8d7101b74bc2d72a04e23cf5c7ddea1",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/7a9f61476b0e8002092a52ee8295edeeb0a28d1e",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/c50413ecb662ea43c7f487632c8114721743a277",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"vulnStatus": "Received",
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nusb: core: clear both ep_in and ep_out for non-ep0 control endpoints\n\nIn usb_enable_endpoint(), non-zero control endpoints (where\nusb_endpoint_xfer_control(&ep->desc) is true) populate both\ndev->ep_in[epnum] and dev->ep_out[epnum] with the same struct\nusb_host_endpoint pointer.\n\nHowever, usb_disable_endpoint() only clears either dev->ep_out[epnum] or\ndev->ep_in[epnum] depending on the direction bit of epaddr when\nreset_hardware is set, leaving the opposite direction's array slot\npointing to the disabled/freed endpoint.\n\nClear both dev->ep_out[epnum] and dev->ep_in[epnum] when disabling a\nnon-ep0 control endpoint with reset_hardware set, and update the\nfunction kerneldoc accordingly.\n\nTested in QEMU against Linux 7.3.0-rc3 using dummy_hcd and raw-gadget to\nenumerate a USB device with a non-zero control endpoint\n(bEndpointAddress 0x01, bmAttributes USB_ENDPOINT_XFER_CONTROL),\nverifying that both dev->ep_in[1] and dev->ep_out[1] are cleared when\nthe interface is disabled."
}
],
"lastModified": "2026-10-19T10:19:40.413",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}