CVE-2026-46048 ALSA: caiaq: fix usb_dev refcount leak on probe failure

Medium 5.5 Published Updated

A refcount leak in the ALSA caiaq driver allows a local attacker to cause memory exhaustion and denial of service via a malformed USB device.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Local or same network only
Victim action needed
Not needed
Fix
Available

What is CVE-2026-46048?

CVE-2026-46048 is a medium-severity memory corruption vulnerability in Linux kernel, published on 27 May 2026. It can only be exploited from the same machine or local network, with no action from the victim.

Official description

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

ALSA: caiaq: fix usb_dev refcount leak on probe failure

create_card() takes a reference on the USB device with usb_get_dev() and stores the matching usb_put_dev() in card_free(), which is installed as the snd_card's ->private_free destructor.

However, ->private_free is only assigned near the end of init_card(), after several failure points (usb_set_interface(), EP type checks, usb_submit_urb(), the EP1_CMD_GET_DEVICE_INFO exchange, and its timeout). When any of those fail, init_card() returns an error to snd_probe(), which calls snd_card_free(card). Because ->private_free is still NULL, card_free() never runs, the usb_get_dev() reference is not dropped, and the struct usb_device leaks along with its descriptor allocations and device_private.

syzbot reproduces this with a malformed UAC3 device whose only valid altsetting is 0; init_card()'s usb_set_interface(usb_dev, 0, 1) call fails with -EIO and triggers the leak.

Move the ->private_free assignment into create_card(), immediately after usb_get_dev(), so that every error path reaching snd_card_free() balances the reference. card_free()'s callees (snd_usb_caiaq_input_free, free_urbs, kfree) already tolerate the partially-initialized state because the chip private area is zero-initialized by snd_card_new().

Which versions are affected by CVE-2026-46048?

It affects 1 product.

Products include Linux kernel.

How do I fix CVE-2026-46048?

Apply the vendor's patch.

Upgrade to the fixed version. Memory-safe languages, compiler hardening and fuzzing prevent most new cases. More about Memory corruption.

Is CVE-2026-46048 being exploited?

There is no known exploitation of CVE-2026-46048 in the wild and no public exploit code.

All Linux kernel vulnerabilities

Sources

Also known as AZL-88620, BELL-CVE-2026-46048, DEBIAN-CVE-2026-46048, GHSA-r5hg-4g6p-vqwc, UBUNTU-CVE-2026-46048.

Is CVE-2026-46048 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free