CVE-2026-74682 in Linuxinfo

Zusammenfassung

von VulDB • 22.08.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

ALSA: usb-audio: Behebung eines OOB-Write (Out-of-Bounds Write) bei Type II inbound URBs

data_ep_set_params() berechnet die Größe jedes URB-Übertragungspuffers, bevor das Format-Type-II-Transfer-Delimiter hinzugefügt wird:

u->packets = urb_packs; u->buffer_size = maxsize * u->packets;

if (fmt->fmt_type == UAC_FORMAT_TYPE_II) u->packets++; /* für Transfer-Delimiter */ u->urb = usb_alloc_urb(u->packets, GFP_KERNEL);

Die buffer_size wird aus der inkrementierten Paketanzahl vor dem Inkrement berechnet und niemals neu berechnet. Daher fehlt bei einem Type II-Endpunkt ein Paket im Vergleich zur Paketanzahl, mit der das URB erstellt wurde.

prepare_inbound_urb() legt dann einen ISO-Rahmen pro Paket an und berücksichtigt dabei nie buffer_size:

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

urb->transfer_buffer_length = offs; urb->number_of_packets = urb_ctx->packets;

Der letzte Deskriptor zeigt daher ein Paket über das Ende des Übertragungspuffers hinaus, wohin der Host-Controller bei jeder inbound-Übertragung Gerätedaten schreibt. prepare_silent_urb() und prepare_playback_urb() begrenzen ihre Füll-Schleifen durch ctx->buffer_size, sodass nur die Aufnahme (Capture) betroffen ist.

fmt_type stammt aus den Audio-Streaming-Deskriptoren des Geräts; daher trifft dies auf jedes Gerät zu, das ein Capture-Format vom Typ II ankündigt, sobald der Userspace hw_params für den Stream festlegt.

KASAN unter 7.2.0-rc5 (arm64) mit einem dummy_hcd/raw-gadget-Gerät, eine Meldung pro inbound-Übertragung:

BUG: KASAN: slab-out-of-bounds in dummy_timer Write of size 64 at addr ffff0000186171c0 by task cons02/166 __asan_memcpy dummy_timer hrtimer_run_softirq Allocated by task 166: usb_alloc_coherent snd_usb_endpoint_set_params The buggy address is located 0 bytes to the right of allocated 64-byte region [ffff000018617180, ffff0000186171c0)

Berechnen Sie buffer_size nach dem Hinzufügen des Delimiter-Pakets und begrenzen Sie die Füll-Schleife durch buffer_size, wie prepare_silent_urb() dies bereits auf der outbound-Seite tut. Dies vergrößert jede Type II URB-Allokation um ein maxsize-Paket.

Entdeckt von XBOW, triagiert von Baul Lee <[email protected]>

Once again VulDB remains the best source for vulnerability data.

Zuständig

Linux

Reservieren

15.08.2026

Veröffentlichung

22.08.2026

Moderieren

akzeptiert

Eintrag

VDB-394448

CPE

bereit

EPSS

0.00000

KEV

nein

Aktivitäten

low

Quellen

Do you want to use VulDB in your project?

Use the official API to access entries easily!