Linux: ALSA: usb: 6fire: Avoid embedded URBs
What fixes it
- 3ef9093d83ffecb8e5f6c9d5769a52d39df74f7aLinuxCVE List
- 8b8559aeaba2e51cfee1779b2383b085991f7d81LinuxCVE List
- 52a43c2d57e774489ac3fbbac06ff02f19bd9a52LinuxCVE List
- 999f433c09e4668412bd68ca207ae2b4af863862LinuxCVE List
- 9fe49dbc023e82dfaee7b245997d820d01742a9aLinuxCVE List
- 6.1.189LinuxCVE List
Show all 10 fixed versions
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
ALSA: usb: 6fire: Avoid embedded URBs
The USB 6fire driver uses URBs embedded in different structs for PCM, MIDI and communication, and this is basically a buggy implementation nowadays; since a URB is managed with a refcount, this may lead to a UAF when the URB is released asynchronously.
For addressing the problem, this patch converts those embedded URBs to ones that are properly allocated via usb_alloc_urb(). The pcm_urb.packets[] is gone, as it's allocated by usb_alloc_urb(), hence it's found in urb.iso_frame_desc[] instead.
The conversions are rather straightforward; each embedded struct urb is changed to a pointer, and its callers are updated accordingly. The resource for those structs are released in the common destructor functions (usb6fire_comm_free(), etc), which are called at both the init error path and the disconnect.
No functional changes, only compile-tested.
Text from CVE List
Affected versions 17
- Linuxaffected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 3ef9093d83ffecb8e5f6c9d5769a52d39df74f7aCVE List
- Linuxaffected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 8b8559aeaba2e51cfee1779b2383b085991f7d81CVE List
- Linuxaffected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 52a43c2d57e774489ac3fbbac06ff02f19bd9a52CVE List
- Linuxaffected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 999f433c09e4668412bd68ca207ae2b4af863862CVE List
- Linuxaffected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before d181434549b3da668110a25d743848cce9897f4eCVE List
- Linuxaffected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 9fe49dbc023e82dfaee7b245997d820d01742a9aCVE List
- Linuxaffected: all versions before 6.1.189CVE List
- Linuxaffected: all versions before 6.6.158CVE List
- Linuxaffected: all versions before 6.12.112CVE List
- Linuxaffected: all versions before 6.18.54CVE List
- Linuxaffected: all versions before 7.2.8CVE List
- Linuxunaffected: 6.1.189 through 6.1.*CVE List
- Linuxunaffected: 6.6.158 through 6.6.*CVE List
- Linuxunaffected: 6.12.112 through 6.12.*CVE List
- Linuxunaffected: 6.18.54 through 6.18.*CVE List
- Linuxunaffected: 7.2.8 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 6
- git.kernel.org/stable/c/3ef9093d83ffecb8e5f6c9d5769a52d39df74f7aReferencevia CVE List
- git.kernel.org/stable/c/8b8559aeaba2e51cfee1779b2383b085991f7d81Referencevia CVE List
- git.kernel.org/stable/c/52a43c2d57e774489ac3fbbac06ff02f19bd9a52Referencevia CVE List
- git.kernel.org/stable/c/999f433c09e4668412bd68ca207ae2b4af863862Referencevia CVE List
- git.kernel.org/stable/c/d181434549b3da668110a25d743848cce9897f4eReferencevia CVE List
- git.kernel.org/stable/c/9fe49dbc023e82dfaee7b245997d820d01742a9aReferencevia CVE List