CVE-2024-46798: ASoC: dapm: Fix UAF for snd_soc_pcm_runtime object
In the Linux kernel, the following vulnerability has been resolved:
ASoC: dapm: Fix UAF for snd_soc_pcm_runtime object
When using kernel with the following extra config,
- CONFIG_KASAN=y
- CONFIG_KASAN_GENERIC=y
- CONFIG_KASAN_INLINE=y
- CONFIG_KASAN_VMALLOC=y
- CONFIG_FRAME_WARN=4096
kernel detects that snd_pcm_suspend_all() access a freed
'snd_soc_pcm_runtime' object when the system is suspended, which
leads to a use-after-free bug:
[ 52.047746] BUG: KASAN: use-after-free in snd_pcm_suspend_all+0x1a8/0x270
[ 52.047765] Read of size 1 at addr ffff0000b9434d50 by task systemd-sleep/2330
[ 52.047785] Call trace:
[ 52.047787] dump_backtrace+0x0/0x3c0
[ 52.047794] show_stack+0x34/0x50
[ 52.047797] dump_stack_lvl+0x68/0x8c
[ 52.047802] print_address_description.constprop.0+0x74/0x2c0
[ 52.047809] kasan_report+0x210/0x230
[ 52.047815] __asan_report_load1_noabort+0x3c/0x50
[ 52.047820] snd_pcm_suspend_all+0x1a8/0x270
[ 52.047824] snd_soc_suspend+0x19c/0x4e0
The snd_pcm_sync_stop() has a NULL check on 'substream->runtime' before
making any access. So we need to always set 'substream->runtime' to NULL
everytime we kfree() it.
Security readout for executives and security teams
Plain-English summary
A Linux audio subsystem object may be used after its memory is freed when an affected system suspends. The demonstrated result is an unsafe kernel memory access that can destabilize or crash the system. The CVSS assessment also allows serious confidentiality and integrity impact, but the supplied sources do not demonstrate those outcomes.
Executive priority
Use accelerated maintenance for affected endpoints, appliances, or embedded systems that use ASoC and suspend, especially where untrusted users have local accounts. This is high severity but not supported as an internet-wide emergency: available evidence indicates local access, and no active exploitation is cited.
Technical view
The ASoC DAPM path frees an snd_soc_pcm_runtime-related runtime object without consistently clearing substream->runtime. During suspension, snd_pcm_suspend_all() can dereference that stale pointer, causing a use-after-free. The Linux stable fixes set substream->runtime to NULL whenever its memory is freed, allowing the existing NULL check to prevent access.
Likely exposure
Exposure is limited to affected Linux kernels where the relevant ASoC audio and suspend path is exercised. The source bundle identifies affected release lines spanning 5.4 through 6.11, but its version representation does not provide sufficiently clear branch boundaries. KASAN exposed the defect during testing; the evidence does not establish that KASAN is required for vulnerability.
Exploitation context
The CVSS vector describes a local, low-privileged attack requiring no user interaction. The supplied bundle marks the CVE as absent from KEV and provides no evidence of active exploitation, a public exploit, remote reachability, or a demonstrated path from the memory error to code execution.
Researcher notes
The observed primitive is a one-byte read through a stale runtime pointer during suspension. The sources establish the lifetime error and corrective NULL assignment, but not attacker control, reliable exploitation, code execution, or precise affected-package boundaries across distributions. Branch-specific stable commits and distribution advisories should drive verification.
Mitigation direction
Apply a vendor-supported kernel update incorporating the applicable Linux stable fix, then reboot.
Consult distribution advisories to map the affected branch and corrected package precisely.
Restrict untrusted local account access until remediation is complete.
Do not treat KASAN configuration as mitigation; it was used to detect the defect.
Validation and detection
Record each system's running kernel version and determine whether it uses the ASoC audio stack.
Confirm the package changelog or vendor advisory addresses CVE-2024-46798 or the corresponding stable commit.
After rebooting, verify the running kernel matches the corrected package.
On a controlled test system, exercise suspend and resume while monitoring for kernel use-after-free reports.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2024-46798 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.