data built 2026-10-19T13:16:53Z

Look up another CVE · open CVE-2026-74332 in the interactive tracker

CVE-2026-74332

ASoC: amd: acp-sdw-sof: Bound DAI link iteration

8.4 EPSS 0.2% AV:L

Published 2026-08-15 (2 months ago) by the Linux kernel CNA. Subsystem sound/soc. Debian urgency: unimportant.

What to do, per Debian release

Debian's own status for CVE-2026-74332 in every release this site tracks, and what each one means in practice. Every status below is the one the Debian Security Team publishes for this CVE. source

ReleaseStatus VersionWhat this means
Debian 12bookwormnot affected6.1.190-1Nothing to do. bookworm never shipped the vulnerable code.
Debian 13trixiefixed6.12.100-1Update the kernel and reboot. Fixed in 6.12.100-1. A running kernel keeps the old code until the machine restarts.
Debian 14forkyfixed7.1.5-1Update the kernel and reboot. Fixed in 7.1.5-1. A running kernel keeps the old code until the machine restarts.
Debian unstablesidfixed7.1.5-1Update the kernel and reboot. Fixed in 7.1.5-1. A running kernel keeps the old code until the machine restarts.

The vulnerability

What the bug is

create_sdw_dailinks() walks sof_dais until it finds an entry with initialised cleared, but sof_dais is allocated with exactly num_ends entries. If all entries are initialised, the loop reads past the end of the array. Pass the allocated entry count to create_sdw_dailinks() and stop before reading past the array.

Where it lives

The fix touches these files. If the subsystem is one you do not use, the practical exposure is lower, though the package is still the vulnerable one.

sound/soc/amd/acp/acp-sdw-sof-mach.c

What this is
AMD ASoC DRIVERSMAINTAINERS section matched on sound/soc/amd/ · linux-sound@vger.kernel.org · Supported
Kernel module
snd_acp_sdw_sof_mach

Check it on the machine

grep -wE 'CONFIG_SND|CONFIG_SND_AMD_ACP_CONFIG|CONFIG_SND_SOC|CONFIG_SND_SOC_AMD_SOF_SDW_MACH' /boot/config-$(uname -r)

Reads the booted kernel's own configuration, on the machine and nowhere else. =y is built in, =m is a module, and an is not set line means the code is not there.

lsmod | grep -w snd_acp_sdw_sof_mach

Prints a line if that module is loaded right now, and nothing if it is not. One that is not loaded can still be loaded later by anything that needs it.

Show whether Debian builds this, per release

Debian does not build this code in 1 release. It does build it in 2 releases, so the answer depends on which release the machine runs. The build rule could not be established for 1 release, so nothing is claimed about those.

  • bookworm?
  • trixien
  • forky, sidMnot built on amd64/cloud-amd64, arm64/arm64, arm64/arm64-16k, arm64/cloud-arm64, arm64/rt-arm64, armhf/armmp, armhf/armmp-lpae, loong64/loong64, ppc64el/powerpc64le, ppc64el/powerpc64le-64k, riscv64/riscv64, s390x/s390x
?
not established - no Makefile entry for the affected file
n
not enabled on any flavour - this release does not build the code
M
a module where it is built at all; some flavours do not build it

Where a release above reads "not established", no build rule for the affected file was found in that release's kernel tree. That is a gap in this lookup, not a finding that the code is absent.

Build switches
CONFIG_SND, CONFIG_SND_AMD_ACP_CONFIG, CONFIG_SND_SOC, CONFIG_SND_SOC_AMD_SOF_SDW_MACH
Reads as
all on means the file is compiled; any one off means it is not.

From the configuration Debian publishes for every kernel flavour it builds. It covers only the architectures Debian ships a linux-config package for, and nothing about a kernel you built yourself. Debian's own status above stays authoritative about the source package.MAINTAINERS kbuild Makefiles Debian linux-config packages

Signals

Published
2026-08-15 (2 months ago)source
CVSS
8.4 high
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:Hsource recompute it
Attack vector
local (AV:L)source
EPSS
0.20%, higher than 8.6% of all CVEssource
CISA KEV
not listedthe KEV catalogue
Debian urgency
unimportantsource
Subsystem
sound/soc

Upstream fixes

The versions the CNA records as introducing and fixing this, and the commit for each. source

IntroducedFixed inCommit
6.126.12.970a5ff4000dd7
6.126.18.409e82497138ab
6.127.1.586a64c049873
6.127.24d992e63f52d

Why the CNA scored it this way

Quoted from the kernel CNA's own scoring file, word for word. A highlighted metric carries the most severe value CVSS v3.1 defines for it, which is what pushes the score up. source

AV:LAttack vector, local
The bug is in create_sdw_dailinks() called from mc_probe() during SOF AMD PCI probe and platform_device_register_data("amd_sof_sdw"); there is no network, Bluetooth, or remote-packet path—only onboard SoundWire topology from ACPI/firmware on AMD ACP63/70 laptops.
AC:LAttack complexity, low
On affected AMD SOF SoundWire machines where every ACPI endpoint gets its own dailink (aggregated=0), all num_ends array slots are initialised and the unbounded while loop deterministically performs a slab out-of-bounds read on every probe, with no race or attacker-controlled memory layout required.
PR:NPrivileges required, none
The vulnerable path runs automatically during kernel driver probe at boot with no authentication, capability, or userspace gate; snd_sof PCI binding and amd_sof_sdw machine registration occur from the PCI ID table without any privilege check on this code path.
UI:NUser interaction, none
Exploitation requires no victim action—the out-of-bounds access occurs inside mc_probe() during automatic machine-driver registration before any ALSA device open, mount, or other user interaction.
S:UScope, unchanged
The out-of-bounds read and any resulting kernel fault or heap corruption stay within the host kernel audio driver security boundary; this is not a VM escape, IOMMU bypass, or cross-authority sandbox breakout.
C:HConfidentiality impact, high
The loop reads the initialised field past the kmalloc sof_dais[num_ends] boundary (KASAN slab-out-of-bounds, read size 1); if adjacent slab data is non-zero the walk continues, interpreting out-of-bounds asoc_sdw_dailink structures and dereferencing garbage list_head endpoints in create_sdw_dailink().
I:HIntegrity impact, high
When the out-of-bounds initialised byte is non-zero, create_sdw_dailink() processes attacker-uncontrolled dailink metadata and advances the dai_links pointer beyond the devm_kcalloc(num_links) allocation, enabling out-of-bounds writes into adjacent kernel heap objects during DAI link construction.
A:HAvailability impact, high
Continuing past the array causes list_for_each_entry() on uninitialised endpoint lists and wild-pointer dereferences that produce a kernel oops/panic during probe; even the minimal one-byte slab OOB read is a confirmed memory-safety violation that can destabilize the audio subsystem on every boot of affected hardware.