CVE-2026-74682: ALSA: usb-audio: fix OOB write on Type II inbound URBs

Published Aug 22, 2026
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

ALSA: usb-audio: fix OOB write on Type II inbound URBs

dataepsetparams() sizes each URB transfer buffer before it adds the Format Type II transfer delimiter:

u->packets = urbpacks; u->buffersize = maxsize u->packets;

if (fmt->fmttype == UACFORMATTYPEII) u->packets++; / for transfer delimiter / u->urb = usballocurb(u->packets, GFPKERNEL);

buffersize is computed from the pre-increment packet count and never recomputed, so for a Type II endpoint the buffer is one packet short of the packet count the URB is built with.

prepareinboundurb() then lays out one iso frame per packet and never consults buffersize:

offs = 0; for (i = 0; i < urbctx->packets; i++) { urb->isoframedesc[i].offset = offs; urb->isoframedesc[i].length = ep->curpacksize; offs += ep->curpacksize; }

urb->transferbufferlength = offs; urb->numberofpackets = urbctx->packets;

The last descriptor therefore points one packet past the end of the transfer buffer, where the host controller writes device data on every inbound transfer. preparesilenturb() and prepareplaybackurb() bound their fill loops by ctx->buffersize, so only capture is affected.

fmttype comes from the device's audio streaming descriptors, so any device advertising a Type II capture format hits this once userspace sets hwparams on the stream.

KASAN on 7.2.0-rc5 (arm64) with a dummyhcd/raw-gadget device, one report per inbound transfer:

BUG: KASAN: slab-out-of-bounds in dummytimer Write of size 64 at addr ffff0000186171c0 by task cons02/166 asanmemcpy dummytimer hrtimerrunsoftirq Allocated by task 166: usballoccoherent sndusbendpointsetparams The buggy address is located 0 bytes to the right of allocated 64-byte region [ffff000018617180, ffff0000186171c0)

Compute buffersize after the delimiter packet has been accounted for, and bound the fill loop by buffersize, as preparesilenturb() already does on the outbound side. This grows every Type II URB allocation by one maxsize packet.

Discovered by XBOW, triaged by Baul Lee <baul.lee@xbow.com>

Affected Software

1 affected component
Linux Linux kernel

Event History

Aug 22, 2026
CVE Published
via MITRE·03:32 PM
Data Sourced
via MITRE·03:32 PM
Description
Data Sourced
via NVD·04:16 PM
Description

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203