CVE-2026-31581

ALSA: 6fire: fix use-after-free on disconnect

State
Published
Severity
Not scored
Published
Apr 24, 2026
Updated
Jun 14, 2026
Reserved
Mar 9, 2026

Read the record on cve.org

Description

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

ALSA: 6fire: fix use-after-free on disconnect

In usb6fire_chip_abort(), the chip struct is allocated as the card's private data (via snd_card_new with sizeof(struct sfire_chip)). When snd_card_free_when_closed() is called and no file handles are open, the card and embedded chip are freed synchronously. The subsequent chip->card = NULL write then hits freed slab memory.

Call trace: usb6fire_chip_abort sound/usb/6fire/chip.c:59 [inline] usb6fire_chip_disconnect+0x348/0x358 sound/usb/6fire/chip.c:182 usb_unbind_interface+0x1a8/0x88c drivers/usb/core/driver.c:458 ... hub_event+0x1a04/0x4518 drivers/usb/core/hub.c:5953

Fix by moving the card lifecycle out of usb6fire_chip_abort() and into usb6fire_chip_disconnect(). The card pointer is saved in a local before any teardown, snd_card_disconnect() is called first to prevent new opens, URBs are aborted while chip is still valid, and snd_card_free_when_closed() is called last so chip is never accessed after the card may be freed.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • f2d06d4e129e2508e356136f99bb20a332ff1a00 to before e719232f4552e29de8027a83918ea94434be87afAffected
  • b889a7d68d7e76b8795b754a75c91a2d561d5e8c to before e247a0e01d15ed420f77ec5e2335721bf430a5b3Affected
  • ea8cc56db659cf0ae57073e32a4735ead7bd7ee3 to before ba88461f7653636c48321ca993006a74724c2f41Affected
  • b754e831a94f82f2593af806741392903f359168 to before e88354b381e2006de63d6b052ed7005c9a47d00eAffected
  • 57860a80f03f9dc69a34a5c37b0941ad032a0a8c to before af75b486f7e883e3422ece23c8d727e6815144a0Affected
  • a0810c3d6dd2d29a9b92604d682eacd2902ce947 to before d21e8a2af4869b5890b34e081d5aeadc93e9cd5cAffected
  • a0810c3d6dd2d29a9b92604d682eacd2902ce947 to before 3dc20d1981d6a67d8184498a5da272942dde1e65Affected
  • a0810c3d6dd2d29a9b92604d682eacd2902ce947 to before 51f6532790b74ffdd6970bc848358a2838c1c185Affected
  • a0810c3d6dd2d29a9b92604d682eacd2902ce947 to before b9c826916fdce6419b94eb0cd8810fdac18c2386Affected
  • 74357d0b5cd3ef544752bc9f21cbeee4902fae6cAffected
  • 273eec23467dfbfbd0e4c10302579ba441fb1e13Affected
  • 0df7f4b5cc10f5adf98be0845372e9eef7bb5b09Affected
  • 5.10.231 to before 5.10.258Affected
  • 5.15.174 to before 5.15.209Affected
  • 6.1.120 to before 6.1.175Affected
  • 6.6.64 to before 6.6.136Affected
  • 6.12.2 to before 6.12.83Affected
  • 4.19.325 to before 4.20Affected
  • 5.4.287 to before 5.5Affected
  • 6.11.11 to before 6.12Affected
LinuxLinux
  • 6.13Affected
  • before 6.13Not affected
  • 5.10.258 through 5.10.*Not affected
  • 5.15.209 through 5.15.*Not affected
  • 6.1.175 through 6.1.*Not affected
  • 6.6.136 through 6.6.*Not affected
  • 6.12.83 through 6.12.*Not affected
  • 6.18.24 through 6.18.*Not affected
  • 6.19.14 through 6.19.*Not affected
  • 7.0.1 through 7.0.*Not affected
  • 7.1 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.