CVE-2026-31581
Severity CVSS v4.0:
Pending analysis
Type:
CWE-416
Use After Free
Publication date:
24/04/2026
Last modified:
27/04/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
ALSA: 6fire: fix use-after-free on disconnect<br />
<br />
In usb6fire_chip_abort(), the chip struct is allocated as the card&#39;s<br />
private data (via snd_card_new with sizeof(struct sfire_chip)). When<br />
snd_card_free_when_closed() is called and no file handles are open, the<br />
card and embedded chip are freed synchronously. The subsequent<br />
chip->card = NULL write then hits freed slab memory.<br />
<br />
Call trace:<br />
usb6fire_chip_abort sound/usb/6fire/chip.c:59 [inline]<br />
usb6fire_chip_disconnect+0x348/0x358 sound/usb/6fire/chip.c:182<br />
usb_unbind_interface+0x1a8/0x88c drivers/usb/core/driver.c:458<br />
...<br />
hub_event+0x1a04/0x4518 drivers/usb/core/hub.c:5953<br />
<br />
Fix by moving the card lifecycle out of usb6fire_chip_abort() and into<br />
usb6fire_chip_disconnect(). The card pointer is saved in a local<br />
before any teardown, snd_card_disconnect() is called first to prevent<br />
new opens, URBs are aborted while chip is still valid, and<br />
snd_card_free_when_closed() is called last so chip is never accessed<br />
after the card may be freed.
Impact
Base Score 3.x
7.80
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.6.136 (excluding) | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.12 (including) | 6.12.83 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (including) | 6.18.24 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 (including) | 6.19.14 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 7.0 (including) | 7.0.1 (excluding) |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/3dc20d1981d6a67d8184498a5da272942dde1e65
- https://git.kernel.org/stable/c/51f6532790b74ffdd6970bc848358a2838c1c185
- https://git.kernel.org/stable/c/af75b486f7e883e3422ece23c8d727e6815144a0
- https://git.kernel.org/stable/c/b9c826916fdce6419b94eb0cd8810fdac18c2386
- https://git.kernel.org/stable/c/d21e8a2af4869b5890b34e081d5aeadc93e9cd5c
- https://git.kernel.org/stable/c/e88354b381e2006de63d6b052ed7005c9a47d00e



