CVE-2026-31701

ALSA: caiaq: take a reference on the USB device in create_card()

MEDIUM
5.5
CVSS Score
Published: May 1, 2026 at 01:56 PM UTC
Updated: June 17, 2026 at 10:34 AM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.1%

Description

In the Linux kernel, the following vulnerability has been resolved: ALSA: caiaq: take a reference on the USB device in create_card() The caiaq driver stores a pointer to the parent USB device in cdev->chip.dev but never takes a reference on it. The card's private_free callback, snd_usb_caiaq_card_free(), can run asynchronously via snd_card_free_when_closed() after the USB device has already been disconnected and freed, so any access to cdev->chip.dev in that path dereferences a freed usb_device. On top of the refcounting issue, the current card_free implementation calls usb_reset_device(cdev->chip.dev). A reset in a free callback is inappropriate: the device is going away, the call takes the device lock in a teardown context, and the reset races with the disconnect path that the callback is already cleaning up after. Take a reference on the USB device in create_card() with usb_get_dev(), drop it with usb_put_dev() in the free callback, and remove the usb_reset_device() call.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

v ≥ 4.19.325v ≥ 5.4.287v ≥ 6.11.114.19.325 ≤ v < 4.205.10.231 ≤ v < 5.10.2585.15.174 ≤ v < 5.15.2095.4.287 ≤ v < 5.56.1.120 ≤ v < 6.1.1756.11.11 ≤ v < 6.126.12.2 ≤ v < 6.12.846.13 ≤ v < 6.18.256.13 ≤ v < 7.0.26.13 ≤ v < 7.16.19 ≤ v < 7.0.26.6.64 ≤ v < 6.6.136237f3faf0177bdde728fa3106d730d806436aa4d3993edf44d3df7b6e8c753eac6ac8783473fcbab4.19.3254507a8b9b30344c5ddd8219945f446d47e966a6d4dd821dcbfcecf7af6a08370b0b217cde2818acf5.10.2315.15.1745.4.2876.1.1206.11.116.12.26.136.6.647.1 rc17.1 rc2a3f9314752dbb6f6aa1f0f2b4c58243bda800738b04dcbb7f7b1908806b7dc22671cdbe78ff2b82ccadf1d8e9ddcd74584ec961aeac14ac549b261d8dd0de8cb708951cebf727aa045e8242ba651bb52ebad462eec93b0f701dfe4de98990e7355283801
Vendor states this is fixed in 1d9be95aee6c6246a21752e60c9519902649f482 (fixed)
Vendor states this is fixed in 493b3a682ededc804555755f5d2193201339612d (fixed)
Vendor states this is fixed in 59b622a043cffc58b7638cd85ae6c30a0904f8e6 (fixed)
Vendor states this is fixed in 6473ed16df1fe88051140611b3eb9a49be7f429e (fixed)
Vendor states this is fixed in 80bb50e2d459213cccff3111d5ef98ed4238c0d5 (fixed)
Vendor states this is fixed in ac7345f68cda6989016d85d63f7b244c064aa8f6 (fixed)
Vendor states this is fixed in dbcf7588e8dea017ddb3f18ec2766f7d2e5f2a0e (fixed)
Vendor states this is fixed in f6634af5de728a46792f674a66d7843570cb68f7 (fixed)
Affected range stops below 4.20, so it looks safe — our inference, not a vendor statement
Vendor states this is fixed in 5.10.258 (unaffected)
Vendor states this is fixed in 5.15.209 (unaffected)
Affected range stops below 5.5, so it looks safe — our inference, not a vendor statement
Vendor states this is fixed in 6.1.175 (unaffected)
Affected range stops below 6.12, so it looks safe — our inference, not a vendor statement
Vendor states this is fixed in 6.12.84 (unaffected)
Vendor states this is fixed in 6.13 (unaffected)
Vendor states this is fixed in 6.18.25 (unaffected)
Vendor states this is fixed in 6.6.136 (unaffected)
Vendor states this is fixed in 7.0.2 (unaffected)
Vendor states this is fixed in 7.1 (unaffected)

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
NVD-CWE-noinfo

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card