Bug 2562765 (CVE-2026-99182) - CVE-2026-99182 kernel: ASoC: SOF: ipc4-topology: Fix shift-out-of-bounds for aggregated ALH capture
Summary: CVE-2026-99182 kernel: ASoC: SOF: ipc4-topology: Fix shift-out-of-bounds for ...
Keywords:
Status: NEW
Alias: CVE-2026-99182
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Product Security DevOps Team
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-10-28 11:05 UTC by OSIDB Bzimport
Modified: 2026-10-29 06:10 UTC (History)
17 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2026-10-28 11:05:48 UTC
In the Linux kernel, the following vulnerability has been resolved:

ASoC: SOF: ipc4-topology: Fix shift-out-of-bounds for aggregated ALH capture

When ch_count is smaller than blob->alh_cfg.device_count (e.g. a mono
capture stream, such as a SmartMic, aggregated across multiple SDW
links), step = ch_count / blob->alh_cfg.device_count truncates to 0.
The subsequent GENMASK(step - 1, 0) then underflows step - 1 (u32) to
UINT_MAX, causing GENMASK()'s internal shift to use an out-of-bounds
exponent:

  UBSAN: shift-out-of-bounds in sound/soc/sof/ipc4-topology.c:2363:13
  shift exponent 18446744069414584384 is too large for 64-bit type 'long unsigned int'

Treat ch_count < device_count the same way as the existing "channels
equal to output reference channels" case: apply the same ch_mask to
every aggregated device instead of trying to split channels that
can't be evenly divided.


Note You need to log in before you can comment on or make changes to this bug.