CVE-2026-43480 Overview
CVE-2026-43480 is a Linux kernel vulnerability in the ASoC (ALSA System on Chip) audio driver acp3x-rt5682-max9836 for AMD Audio Co-Processor (ACP) platforms. The acp3x_5682_init() function failed to validate the return value of clk_get() before passing the resulting pointer to rt5682_clk_enable(). When clk_get() returns an error pointer, downstream code dereferences invalid memory, producing a kernel oops or a local denial-of-service condition.
The issue was resolved upstream by switching to the device-managed devm_clk_get() helper and adding IS_ERR() checks for both clock acquisitions.
Critical Impact
Local users on affected systems can trigger a null/error pointer dereference in the kernel, leading to system instability or denial of service through the audio subsystem.
Affected Products
- Linux kernel — sound/soc/amd/acp3x-rt5682-max9836 machine driver
- AMD ACP3x audio platforms using the RT5682 + MAX98357 codec combination
- Multiple stable kernel branches receiving backported fixes per the linked git.kernel.org commits
Discovery Timeline
- 2026-05-13 - CVE-2026-43480 published to NVD
- 2026-05-13 - Last updated in NVD database
Technical Details for CVE-2026-43480
Vulnerability Analysis
The vulnerability resides in the AMD ACP3x machine driver responsible for binding the Realtek RT5682 codec with the MAX98357 amplifier. During initialization, acp3x_5682_init() calls clk_get() to obtain a reference to the codec master clock. The Linux clock framework returns an ERR_PTR() encoded value on failure, not NULL.
The original code did not invoke IS_ERR() on the returned pointer. The unchecked pointer was stored and later consumed by rt5682_clk_enable(), which dereferenced the encoded error value as if it were a valid struct clk *. This produces an oops in kernel context and halts the audio initialization path.
Beyond the missing check, the original implementation used the non-managed clk_get() API, requiring manual clk_put() cleanup. The fix migrates to devm_clk_get(), tying the clock lifetime to the device and removing a class of resource-management errors.
Root Cause
The root cause is a missing return-value validation [CWE-252] combined with an error-pointer dereference [CWE-476]. The kernel clock API contract requires callers to test results with IS_ERR() before use. Skipping that check transforms any transient clock-acquisition failure into a dereference of an invalid kernel address.
Attack Vector
Exploitation requires local access on a machine using the affected AMD ACP3x audio configuration. Triggering depends on conditions that cause clk_get() to fail during driver probe or sound-card initialization, such as deferred clock providers or configuration errors. A successful trigger produces a kernel crash rather than code execution.
No verified proof-of-concept code is published for this issue. The fix is documented in the upstream commits referenced below, including Kernel Git Commit 2dc43ac8da7b and Kernel Git Commit 53f3a900e9a3.
Detection Methods for CVE-2026-43480
Indicators of Compromise
- Kernel oops messages referencing acp3x_5682_init, rt5682_clk_enable, or snd_soc_acp in dmesg and /var/log/kern.log.
- Audio subsystem probe failures on AMD ACP3x platforms accompanied by null/error pointer dereference backtraces.
- Repeated sound-card initialization failures during boot on affected hardware.
Detection Strategies
- Inventory running kernel versions and compare against the fixed commits listed on git.kernel.org for each stable branch.
- Audit loaded modules for snd_soc_acp3x_rt5682_max9836 on AMD platforms to identify exposed hosts.
- Correlate kernel panic telemetry against the audio driver call stack to surface attempted triggers.
Monitoring Recommendations
- Forward kernel logs to a centralized SIEM and alert on oops or BUG signatures involving ASoC AMD driver symbols.
- Track unexpected reboots or sound subsystem restarts on endpoints and servers with AMD audio hardware.
- Validate vendor kernel package versions during routine patch-compliance scans.
How to Mitigate CVE-2026-43480
Immediate Actions Required
- Apply the latest stable kernel update from your Linux distribution that incorporates the upstream fix.
- On systems that cannot be patched immediately, unload or blacklist the snd_soc_acp3x_rt5682_max9836 module if audio is non-essential.
- Restrict local access on affected systems while patching is scheduled.
Patch Information
The fix changes clk_get() to devm_clk_get() and adds IS_ERR() checks for both clock acquisitions in acp3x_5682_init(). Backports are available across multiple stable branches. Reference the upstream commits: 092522621901b, 2b0c4a399c8d, 2dc43ac8da7b, 33de168afdd5, 35c7624d30cb, 4d802f23fcbf, 53f3a900e9a3, and 790851ecc983.
Workarounds
- Blacklist the affected module by adding blacklist snd_soc_acp3x_rt5682_max9836 to /etc/modprobe.d/.
- Disable AMD ACP audio in firmware on systems where audio is not required.
- Limit local user logins on affected hosts until the fixed kernel is deployed.
# Example: blacklist the affected ASoC machine driver until patched
echo 'blacklist snd_soc_acp3x_rt5682_max9836' | sudo tee /etc/modprobe.d/cve-2026-43480.conf
sudo update-initramfs -u
sudo reboot
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

