CVE-2026-98769
En el kernel de Linux se ha resuelto la siguiente vulnerabilidad:
usb: gadget: f_uac1_legacy: validate bRequest index in generic_{set,get}_cmd
generic_set_cmd() y generic_get_cmd() usan el nibble bajo de ctrl->bRequest como índice en con->data[]:
La estructura struct usb_audio_control (include/linux/usb/audio.h) declara data como un array de 5 elementos, por lo que los índices del 5 al 15 escriben (o leen) hasta 44 bytes más allá del final del array en el heap.
Un host USB malicioso puede elaborar una petición SET_CUR / GET_CUR específica de clase con un valor arbitrario de bRequest, lo que provoca el acceso fuera de límites desde un manejador de completitud de IRQ sin más condiciones previas.
Leer descripción completaMostrar menos
Añade una comprobación con ARRAY_SIZE() en ambas funciones.
Detalles técnicos trazas, registros y código del informe original
u8 cmd = (ctrl->bRequest & 0x0F); /* 0 .. 15 */
...
con->data[cmd] = value; /* OOB cuando cmd >= 5 */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-98769",
"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": "c47d7b09891abb4f8b222317c89c7469bed8db3a",
"lessThan": "36f3f009049bc91e14dc856007932473318d12f8",
"versionType": "git"
},
{
"status": "affected",
"version": "c47d7b09891abb4f8b222317c89c7469bed8db3a",
"lessThan": "8c611876c002d712ae5f246af5188432c708f79d",
"versionType": "git"
},
{
"status": "affected",
"version": "c47d7b09891abb4f8b222317c89c7469bed8db3a",
"lessThan": "697cfe6e53b66cda196d6f8833b0ee97fefd0a8a",
"versionType": "git"
},
{
"status": "affected",
"version": "c47d7b09891abb4f8b222317c89c7469bed8db3a",
"lessThan": "9062d50e75c24dc7911be05c9b1719b3b256af15",
"versionType": "git"
}
],
"programFiles": [
"drivers/usb/gadget/function/f_uac1_legacy.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.31"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "2.6.31",
"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/gadget/function/f_uac1_legacy.c"
],
"defaultStatus": "affected"
}
]
}
],
"published": "2026-10-18T16:17:30.813",
"references": [
{
"url": "https://git.kernel.org/stable/c/36f3f009049bc91e14dc856007932473318d12f8",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/697cfe6e53b66cda196d6f8833b0ee97fefd0a8a",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/8c611876c002d712ae5f246af5188432c708f79d",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/9062d50e75c24dc7911be05c9b1719b3b256af15",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"vulnStatus": "Received",
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nusb: gadget: f_uac1_legacy: validate bRequest index in generic_{set,get}_cmd\n\ngeneric_set_cmd() and generic_get_cmd() use the low nibble of\nctrl->bRequest as an index into con->data[]:\n\n u8 cmd = (ctrl->bRequest & 0x0F); /* 0 .. 15 */\n ...\n con->data[cmd] = value; /* OOB when cmd >= 5 */\n\nstruct usb_audio_control (include/linux/usb/audio.h) declares data as\na 5-element array, so indices 5 through 15 write (or read) up to 44\nbytes past the end of the array on the heap.\n\nA malicious USB host can craft a class-specific SET_CUR / GET_CUR\nrequest with an arbitrary bRequest value, triggering the out-of-bounds\naccess from an IRQ completion handler with no further preconditions.\n\nAdd an ARRAY_SIZE() guard to both functions."
}
],
"lastModified": "2026-10-19T10:19:41.037",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}