Linux kernel
cpe:2.3:a:linux:linux_kernel:*:*:*:*:*:*:*, +4 more
A vulnerability in the ALSA caiaq driver of the Linux kernel allows for improper handling of USB device references. The driver stores a pointer to the parent USB device but fails to increment the reference count. This oversight can lead to a use-after-free condition, as the driver's cleanup routine may access a freed USB device pointer after disconnection. Additionally, the current implementation inappropriately resets the USB device during the cleanup process, creating a race condition with the disconnection sequence.
The vulnerability can cause a use-after-free condition, potentially leading to arbitrary code execution or memory corruption.
The vulnerability can be reproduced by creating an ALSA caiaq USB audio device without properly managing the reference count of the USB device. This can be done by connecting a caiaq-compatible USB device and then disconnecting it while the ALSA subsystem is still accessing the device, such as during audio playback or recording. The lack of a proper reference count allows the driver to access a freed USB device, causing a use-after-free error.
The vulnerability has been addressed by modifying the caiaq driver to correctly manage USB device references. The driver now takes a reference on the USB device when creating a sound card and releases it during the cleanup process. Users should update to the latest version of the Linux kernel where this vulnerability has been fixed.
Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.