Skip to content
CVE PROGRAM SOURCE RECORDUnscored

CVE-2026-31581

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

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.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • f2d06d4e129e2508e356136f99bb20a332ff1a00 to < e719232f4552e29de8027a83918ea94434be87afaffected
  • b889a7d68d7e76b8795b754a75c91a2d561d5e8c to < e247a0e01d15ed420f77ec5e2335721bf430a5b3affected
  • ea8cc56db659cf0ae57073e32a4735ead7bd7ee3 to < ba88461f7653636c48321ca993006a74724c2f41affected
  • b754e831a94f82f2593af806741392903f359168 to < e88354b381e2006de63d6b052ed7005c9a47d00eaffected
  • 57860a80f03f9dc69a34a5c37b0941ad032a0a8c to < af75b486f7e883e3422ece23c8d727e6815144a0affected
  • a0810c3d6dd2d29a9b92604d682eacd2902ce947 to < d21e8a2af4869b5890b34e081d5aeadc93e9cd5caffected
  • a0810c3d6dd2d29a9b92604d682eacd2902ce947 to < 3dc20d1981d6a67d8184498a5da272942dde1e65affected
  • a0810c3d6dd2d29a9b92604d682eacd2902ce947 to < 51f6532790b74ffdd6970bc848358a2838c1c185affected
  • a0810c3d6dd2d29a9b92604d682eacd2902ce947 to < b9c826916fdce6419b94eb0cd8810fdac18c2386affected
  • 74357d0b5cd3ef544752bc9f21cbeee4902fae6caffected
  • 273eec23467dfbfbd0e4c10302579ba441fb1e13affected
  • 0df7f4b5cc10f5adf98be0845372e9eef7bb5b09affected
  • 5.10.231 to < 5.10.258affected
  • 5.15.174 to < 5.15.209affected
  • 6.1.120 to < 6.1.175affected
  • 6.6.64 to < 6.6.136affected
  • 6.12.2 to < 6.12.83affected
  • 4.19.325 to < 4.20affected
  • 5.4.287 to < 5.5affected
  • 6.11.11 to < 6.12affected

Linux Linux

Default version status: affected

  • 6.13affected
  • 0 to < 6.13unaffected
  • 5.10.258 to ≤ 5.10.*unaffected
  • 5.15.209 to ≤ 5.15.*unaffected
  • 6.1.175 to ≤ 6.1.*unaffected
  • 6.6.136 to ≤ 6.6.*unaffected
  • 6.12.83 to ≤ 6.12.*unaffected
  • 6.18.24 to ≤ 6.18.*unaffected
  • 6.19.14 to ≤ 6.19.*unaffected
  • 7.0.1 to ≤ 7.0.*unaffected
  • 7.1 to ≤ *unaffected

References