Cloudanix VulnDB

CVE-2026-46004

High · 7.8

CVSS

7.8

EPSS

0.1%

Published

May 27, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A flaw in a Linux audio-device driver could let someone with local or USB access crash the system or possibly gain full control, so affected systems should be updated or the unused driver disabled.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Low
Impact
Privilege Gain
Component
OS kernel
Class
Use After Free
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

This is a local Linux kernel use-after-free flaw in the ALSA caiaq USB audio driver error-handling path during device probing. If setup of a caiaq-compatible USB audio device fails, the driver can free the sound card structure but continue executing later initialization routines that still reference the freed object, potentially corrupting kernel memory. Successful exploitation could allow a local attacker with the ability to trigger driver probing to cause a kernel crash or potentially execute code with kernel privileges, resulting in confidentiality, integrity, and availability impact.

Why it matters to the business

Systems that load the affected Linux kernel driver may be exposed to local privilege escalation or denial-of-service risk. In practical terms, an attacker who already has local access, or who can cause a vulnerable system to probe a malicious or malformed USB audio device, may be able to crash the host or gain elevated control. The issue is not currently listed in CISA KEV, has no known mature public exploit, and has a low EPSS score, so broad internet-scale exploitation is unlikely; however, kernel privilege-escalation bugs remain high-impact on shared workstations, developer machines, audio workstations, kiosks, and systems where USB device access is possible.

How an attack unfolds

An attacker first needs a way to reach the vulnerable code path, typically by having local access to a Linux system where the ALSA caiaq USB audio driver is present and can be loaded, or by introducing a crafted caiaq-compatible USB audio device that triggers probe-time failures. During USB device enumeration, the kernel invokes the caiaq driver probe logic. By causing an error after partial card allocation or registration, the vulnerable path may free the ALSA card object while execution continues into later initialization functions. Subsequent operations dereference the freed object, creating a use-after-free condition in kernel memory. Depending on heap layout, kernel hardening, and attacker control over replacement allocations, the result may range from a kernel oops or panic to privilege escalation through controlled memory corruption. There is no reported active exploitation or named threat actor activity for this issue in the provided intelligence.

How to fix it

Apply a Linux kernel update that includes the ALSA caiaq probe error-handling fix. Because no exact fixed versions were provided, use the security advisory and patched kernel packages from the relevant Linux distribution or kernel vendor, and prioritize kernels released after the vendor incorporated the fix for CVE-2026-46004. Reboot into the patched kernel after installation; merely installing the package is insufficient if the system continues running an older kernel. As interim mitigation, disable or block loading of the caiaq driver where it is not required, for example by blacklisting the snd_usb_caiaq module, restricting USB device attachment, and enforcing physical port controls or USB device authorization policies. Avoid relying on mitigations alone for systems where untrusted users or untrusted USB devices are present.

How to confirm the fix worked

Confirm the running kernel, not just the installed package, is updated to a vendor build containing the fix. Check the active kernel with uname -r and compare it against the distribution's fixed kernel advisory. Verify whether the vulnerable driver is present or loaded using lsmod, modinfo, and /sys/module checks for snd_usb_caiaq. If the driver is not needed, confirm blacklist or module-blocking policy prevents it from loading after reboot. For exposure validation, test whether attaching a supported caiaq-class USB audio device causes the snd_usb_caiaq module to load. For fix validation in lab environments only, kernel debugging or KASAN-enabled test kernels can be used to confirm the probe error path no longer reports use-after-free conditions when forced error cases are exercised.

Typical attack path

  1. Obtain local access to a vulnerable Linux system or physical/logical ability to present a USB audio device to it.
  2. Ensure the affected ALSA caiaq driver is available and can bind to the presented device.
  3. Trigger probing of a malformed or failure-inducing caiaq-compatible USB audio device.
  4. Cause setup_card() to encounter an error condition after partial resource allocation.
  5. Leverage the flawed error path where freed sound card memory may still be referenced by later initialization code.
  6. Attempt to shape kernel heap state so the use-after-free causes controlled memory corruption rather than only a crash.
  7. Achieve kernel crash, denial of service, or possible kernel-level privilege escalation.

How to detect it

Review kernel, system, and endpoint telemetry for signs that the caiaq USB audio driver was loaded and then crashed or produced memory-corruption diagnostics. Useful sources include journald, dmesg, /var/log/kern.log, /var/log/messages, audit logs, EDR kernel crash telemetry, USB device inventory logs, and kernel panic/oops collection systems such as kdump or apport where enabled. Look for sequences where a new USB audio device is enumerated, snd_usb_caiaq binds or attempts to initialize, and the host records an oops, panic, KASAN use-after-free report, slab corruption, general protection fault, or trace involving caiaq setup/probe functions. Since no public exploit or campaign-specific indicators were provided, detection should focus on behavioral evidence: unexpected loading of snd_usb_caiaq, repeated probe failures, unexplained kernel crashes after USB device attachment, and local activity around the time of the crash. Treat crashes involving this driver as suspicious when they occur on systems where caiaq hardware is not expected.

  • snd_usb_caiaq
  • snd-usb-caiaq
  • /sys/module/snd_usb_caiaq
  • sound/usb/caiaq
  • ALSA: caiaq
  • caiaq
  • snd_card_register
  • snd_card_free
  • snd_usb_caiaq_control_init
  • KASAN: use-after-free
  • BUG: KASAN
  • use-after-free in snd_usb_caiaq
  • general protection fault
  • kernel BUG at sound/usb/caiaq
  • Oops:
  • Kernel panic
  • usbcore: registered new interface driver snd-usb-caiaq

What your security team should do

  • Inventory Linux systems where the snd_usb_caiaq driver is installed or loaded, especially endpoints, workstations, kiosks, labs, and systems with accessible USB ports.
  • Patch affected systems using the relevant distribution kernel update and reboot into the fixed kernel.
  • If caiaq USB audio support is unnecessary, blacklist or otherwise prevent loading of snd_usb_caiaq as a defense-in-depth control.
  • Restrict untrusted USB device use through physical controls, USB authorization, endpoint management, or device-control tooling.
  • Monitor kernel logs for crashes, KASAN reports, or oops traces involving snd_usb_caiaq, caiaq, snd_card_register, or snd_usb_caiaq_control_init.
  • Prioritize investigation if suspicious kernel crashes coincide with new USB audio device attachment or local user activity.
  • Because exploitation currently appears immature and the EPSS score is low, prioritize this after actively exploited internet-facing issues, but do not defer on multi-user or physically exposed Linux systems.

The record

In the Linux kernel, the following vulnerability has been resolved: ALSA: caiaq: Handle probe errors properly The probe procedure of setup_card() in caiaq driver doesn't treat the error cases gracefully, e.g. the error from snd_card_register() calls snd_card_free() but continues. This would lead to a UAF for the further calls like snd_usb_caiaq_control_init(), as Berk suggested in another patch in the link below. However, the problem is not only that; in general, this function drops the all error handlings (as it's a void function) although its caller can propagate an error to snd_probe(), which eventually calls snd_card_free() as a proper error path. That said, we should treat each error case in setup_card(), and just return the error code promptly, which is then handled later as a fatal error in snd_probe(). This patch achieves it by changing the setup_card() to return an error code. Also, the superfluous snd_card_free() call is removed, too. Note that card->private_free can be set still safely at returning an error. All called functions in card_free() have checks of the unassigned resources or NULL checks.

Affected packages

Ecosystem Package Introduced Fixed
openSUSE:Tumbleweed kernel-source 0 7.0.11-1.1

Related vulnerabilities