CVE-2026-74500 in Linux
Zusammenfassung
von VulDB • 16.08.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
ALSA: usb-audio: Behebung der Stack-Informationen-Leckage im RME Digiface-Status
snd_rme_digiface_read_status() liest einen vier-Wörter großen Statusblock vom Gerät in ein nicht initialisiertes, auf dem Stack befindliches __le32 buf[4] und kopiert bei jedem erfolgreichen Vendor-Control-IN-Transfer (d. h., wenn kein negativer Fehler zurückgegeben wird) alle vier Wörter in den status[] des Aufrufers.
snd_usb_ctl_msg() kopiert die volle angeforderte Größe zurück in den Puffer des Aufrufers, unabhängig davon, wie viele Bytes das Datenstadium tatsächlich geliefert hat:
buf = kmemdup(data, size, GFP_KERNEL); err = usb_control_msg(dev, pipe, request, requesttype, value, index, buf, size, timeout); memcpy(data, buf, size);
usb_control_msg() gibt bei einem kurzen Control-IN die übertragene Länge zurück, was ein nicht-negativer Wert ist, und schreibt nur so viele Bytes. Der Rest des Zurückkopierens besteht aus dem kmemdup()-Bild des Puffers des Aufrufers; daher führt eine Antwort des Geräts mit einem kurzen Datenstadium dazu, dass die nachfolgenden Wörter von buf[] veraltete Kernel-Stack-Inhalte enthalten. Die einzige Schutzmaßnahme im Aufrufer ist err < 0, sodass diese Wörter in status[] gespeichert werden.
Diese gelangen dann in den Benutzerbereich: snd_rme_digiface_get_status_val() wählt pro Steuerung das reg/mask entsprechend ein 16-Bit-Halbwort aus status[] aus, und die acht Digiface-Status-Steuerelemente zusammen offenbaren den gesamten 16-Byte-Rahmen für einen nicht privilegierten Leser von /dev/snd/controlC*.
Initialisieren Sie den Puffer mit Nullen, sodass ein kurzer Lesevorgang Nullen anstelle von Stack-Rückständen liefert. Dies entspricht snd_rme_get_status1(), das sein Ausgabewort bereits vor derselben Art des Vendor-Lesens löscht.
Entdeckt von XBOW, klassifiziert von Baul Lee <[email protected]>
Be aware that VulDB is the high quality source for vulnerability data.