CVE-2026-98741
En el kernel de Linux se ha resuelto la siguiente vulnerabilidad:
ALSA: ua101: rechazar descriptores de paquetes de captura/reproducción con tamaños no coherentes
detect_usb_format() comprueba de forma cruzada bSubframeSize, bBitResolution y tSamFreq entre las interfaces de captura y de reproducción, pero nunca relaciona los wMaxPacketSize y los bNrChannels de los dos endpoints. Cada URB de reproducción recibe un búfer de ua->playback.max_packet_bytes, mientras que el número de bytes escritos en él se deriva del flujo de captura: capture_urb_complete() calcula los frames a partir del paquete de captura recibido y de capture.frame_bytes, y start_usb_playback() y playback_work() multiplican ese valor por playback.frame_bytes.
Leer descripción completaMostrar menos
Un dispositivo que declare un wMaxPacketSize de captura grande con pocos canales de captura y un wMaxPacketSize de reproducción pequeño con muchos canales de reproducción, por tanto, ejecuta memset() y memcpy() más allá del final del búfer de reproducción, en open() del nodo PCM que el driver registra durante el probe. usb_submit_urb() rechaza el iso_frame_desc[0].length excesivo con -EMSGSIZE, pero solo después de la escritura.
Rechazar esos descriptores en el momento del probe. El hardware UA-101/UA-1000 genuino declara tamaños de paquete proporcionales y no se ve afectado.
Detalles técnicos trazas, registros y código del informe original
BUG: KASAN: slab-out-of-bounds in start_usb_playback (sound/usb/misc/ua101.c:586) Write of size 2048 at addr ffff8881098f3c00 by task exploit/5021 Call Trace: __asan_memset (mm/kasan/shadow.c:84) start_usb_playback (sound/usb/misc/ua101.c:586) playback_pcm_open (sound/usb/misc/ua101.c:679) snd_pcm_open_substream (sound/core/pcm_native.c:2829) snd_pcm_open (sound/core/pcm_native.c:2865 sound/core/pcm_native.c:2932) snd_pcm_playback_open (sound/core/pcm_native.c:2891) snd_open (sound/core/sound.c:166) chrdev_open (fs/char_dev.c:411) do_dentry_open (fs/open.c:996) vfs_open (fs/open.c:1101) path_openat (fs/namei.c:4837 fs/namei.c:5000) do_file_open (fs/namei.c:5029) do_sys_openat2 (fs/open.c:1417) __x64_sys_openat (fs/open.c:1423 fs/open.c:1439 fs/open.c:1434) do_syscall_64 (arch/x86/entry/syscall_64.c:61 arch/x86/entry/syscall_64.c:84) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) The buggy address belongs to the object at ffff8881098f3c00 which belongs to the cache kmalloc-192 of size 192 The buggy address is located 0 bytes inside of allocated 168-byte region [ffff8881098f3c00, ffff8881098f3ca8)
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-98741",
"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": "63978ab3e3e963db28093b53bb4598f2702e1ad7",
"lessThan": "fd3a7bf0d988b0878a1957df150edb35f81db87e",
"versionType": "git"
},
{
"status": "affected",
"version": "63978ab3e3e963db28093b53bb4598f2702e1ad7",
"lessThan": "eb0c7fda59cf650076f8ed5b949a6c8441aa3606",
"versionType": "git"
},
{
"status": "affected",
"version": "63978ab3e3e963db28093b53bb4598f2702e1ad7",
"lessThan": "4294fe57048594a9e158b61c967bb7f943cda477",
"versionType": "git"
},
{
"status": "affected",
"version": "63978ab3e3e963db28093b53bb4598f2702e1ad7",
"lessThan": "86f86e6fdedc33c5b8d38b9208b350f8accf57ee",
"versionType": "git"
}
],
"programFiles": [
"sound/usb/misc/ua101.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.34"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "2.6.34",
"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": [
"sound/usb/misc/ua101.c"
],
"defaultStatus": "affected"
}
]
}
],
"published": "2026-10-18T16:17:27.807",
"references": [
{
"url": "https://git.kernel.org/stable/c/4294fe57048594a9e158b61c967bb7f943cda477",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/86f86e6fdedc33c5b8d38b9208b350f8accf57ee",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/eb0c7fda59cf650076f8ed5b949a6c8441aa3606",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/fd3a7bf0d988b0878a1957df150edb35f81db87e",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"vulnStatus": "Received",
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: ua101: reject mismatched capture/playback packet sizes\n\ndetect_usb_format() cross-checks bSubframeSize, bBitResolution and\ntSamFreq between the capture and playback interfaces, but never relates\nthe two endpoints' wMaxPacketSize and bNrChannels. Each playback URB\ngets a buffer of ua->playback.max_packet_bytes, while the number of\nbytes written into it is derived from the capture stream:\ncapture_urb_complete() computes frames from the received capture packet\nand capture.frame_bytes, and start_usb_playback() and playback_work()\nmultiply that by playback.frame_bytes.\n\nA device declaring a large capture wMaxPacketSize with few capture\nchannels and a small playback wMaxPacketSize with many playback channels\ntherefore memset()s and memcpy()s past the end of the playback buffer,\nin open() of the PCM node the driver registers during probe.\nusb_submit_urb() rejects the over-long iso_frame_desc[0].length with\n-EMSGSIZE, but only after the write.\n\nReject such descriptors at probe time. Genuine UA-101/UA-1000 hardware\ndeclares proportional packet sizes and is unaffected.\n\n BUG: KASAN: slab-out-of-bounds in start_usb_playback (sound/usb/misc/ua101.c:586)\n Write of size 2048 at addr ffff8881098f3c00 by task exploit/5021\n Call Trace:\n __asan_memset (mm/kasan/shadow.c:84)\n start_usb_playback (sound/usb/misc/ua101.c:586)\n playback_pcm_open (sound/usb/misc/ua101.c:679)\n snd_pcm_open_substream (sound/core/pcm_native.c:2829)\n snd_pcm_open (sound/core/pcm_native.c:2865 sound/core/pcm_native.c:2932)\n snd_pcm_playback_open (sound/core/pcm_native.c:2891)\n snd_open (sound/core/sound.c:166)\n chrdev_open (fs/char_dev.c:411)\n do_dentry_open (fs/open.c:996)\n vfs_open (fs/open.c:1101)\n path_openat (fs/namei.c:4837 fs/namei.c:5000)\n do_file_open (fs/namei.c:5029)\n do_sys_openat2 (fs/open.c:1417)\n __x64_sys_openat (fs/open.c:1423 fs/open.c:1439 fs/open.c:1434)\n do_syscall_64 (arch/x86/entry/syscall_64.c:61 arch/x86/entry/syscall_64.c:84)\n entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121)\n\n The buggy address belongs to the object at ffff8881098f3c00\n which belongs to the cache kmalloc-192 of size 192\n The buggy address is located 0 bytes inside of\n allocated 168-byte region [ffff8881098f3c00, ffff8881098f3ca8)"
}
],
"lastModified": "2026-10-19T10:19:38.267",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}