ALSA: usb-audio: Fix out of bounds reads when finding clock sources
Affects the Linux kernel ALSA USB audio driver from 4.19.84 to before 4.20 and from 5.3.11 to before 5.4, plus other kernel branches, when a USB audio device provides a clock descriptor with a shorter bLength than expected.
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Listed in CISA KEV
- How many real-world setups can hit the bug, from the vendor's advisory and CISA data. It does not know your setup.What do these mean? →
- Actively exploited
- Fix
- Fixed in 4.20, 5.4
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
The Linux kernel's USB audio driver (ALSA usb-audio) is affected, where malformed USB audio descriptors with an invalid length could cause out-of-bounds memory reads when the driver searches for clock sources. The impact is that a connected USB device providing a crafted descriptor could cause the kernel to read memory outside its intended buffers, potentially leading to a crash or information exposure.
Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.
Read the original description
In the Linux kernel, the following vulnerability has been resolved: ALSA: usb-audio: Fix out of bounds reads when finding clock sources The current USB-audio driver code doesn't check bLength of each descriptor at traversing for clock descriptors. That is, when a device provides a bogus descriptor with a shorter bLength, the driver might hit out-of-bounds reads. For addressing it, this patch adds sanity checks to the validator functions for the clock descriptor traversal. When the descriptor length is shorter than expected, it's skipped in the loop. For the clock source and clock multiplier descriptors, we can just check bLength against the sizeof() of each descriptor type. OTOH, the clock selector descriptor of UAC2 and UAC3 has an array of bNrInPins elements and two more fields at its tail, hence those have to be checked in addition to the sizeof() check.
Timeline
- CVE published
- Added to CISA KEV
CISA has evidence of exploitation in the wild
- CISA remediation deadline
Due date for US federal agencies to patch
- Record last updated
Affected versions
- Linux Linux
From b8e4f1fdfa422398c2d6c47bfb7d1feb3046d70a · fixed in a632bdcb359fd8145e86486ff8612da98e239acd; From b8e4f1fdfa422398c2d6c47bfb7d1feb3046d70a · fixed in 45a92cbc88e4013bfed7fd2ccab3ade45f8e896b; From b8e4f1fdfa422398c2d6c47bfb7d1feb3046d70a · fixed in ab011f7439d9bbfd34fd3b9cef4b2d6d952c9bb9; From b8e4f1fdfa422398c2d6c47bfb7d1feb3046d70a · fixed in da13ade87a12dd58829278bc816a61bea06a56a9; From b8e4f1fdfa422398c2d6c47bfb7d1feb3046d70a · fixed in 74cb86e1006c5437b1d90084d22018da30fddc77; From b8e4f1fdfa422398c2d6c47bfb7d1feb3046d70a · fixed in ea0fa76f61cf8e932d1d26e6193513230816e11d; From b8e4f1fdfa422398c2d6c47bfb7d1feb3046d70a · fixed in 096bb5b43edf755bc4477e64004fa3a20539ec2f; From b8e4f1fdfa422398c2d6c47bfb7d1feb3046d70a · fixed in a3dd4d63eeb452cfb064a13862fb376ab108f6a6; From 4.19.84 · fixed in 4.20; From 5.3.11 · fixed in 5.4
- Linux Linux
5.4
References 8
git.kernel.org
- stable/c/a632bdcb359fd8145e86486ff8612da98e239acd
- stable/c/45a92cbc88e4013bfed7fd2ccab3ade45f8e896b
- stable/c/ab011f7439d9bbfd34fd3b9cef4b2d6d952c9bb9
- stable/c/da13ade87a12dd58829278bc816a61bea06a56a9
- stable/c/74cb86e1006c5437b1d90084d22018da30fddc77
- stable/c/ea0fa76f61cf8e932d1d26e6193513230816e11d
- stable/c/096bb5b43edf755bc4477e64004fa3a20539ec2f
- stable/c/a3dd4d63eeb452cfb064a13862fb376ab108f6a6
Questions about CVE-2024-53150
What does this mean?
When a USB audio device provides a clock descriptor shorter than expected, the Linux driver may read memory beyond the end of that descriptor while searching for clock sources.Source: git.kernel.org
Am I affected, and how do I check?
The affected code is the Linux kernel ALSA USB audio driver, with listed ranges from 4.19.84 to before 4.20 and from 5.3.11 to before 5.4, plus other branches tied to the introducing commit. To see your kernel version, run uname -r and compare it with these ranges.Source: git.kernel.org
What should I do about it?
Update to a kernel that includes the fix commits listed for this issue, such as 4.20 or later or 5.4 or later on those branches. The facts do not name a single fixed version for every branch.Source: git.kernel.org
Is it being exploited?
Yes. CISA added it to its Known Exploited Vulnerabilities catalog on 2025-04-09, which means it has evidence of attacks. No public exploit code is tracked.Source: cisa.gov, cve.now feed data