CVE-2026-43437: ALSA: pcm: fix use-after-free on linked stream runtime in snd_pcm_drain()
In the Linux kernel, the following vulnerability has been resolved:
ALSA: pcm: fix use-after-free on linked stream runtime in sndpcmdrain()
In the drain loop, the local variable 'runtime' is reassigned to a linked stream's runtime (runtime = s->runtime at line 2157). After releasing the stream lock at line 2169, the code accesses runtime->noperiodwakeup, runtime->rate, and runtime->buffersize (lines 2170-2178) — all referencing the linked stream's runtime without any lock or refcount protecting its lifetime.
A concurrent close() on the linked stream's fd triggers sndpcmreleasesubstream() → sndpcmdrop() → pcmreleaseprivate() → sndpcmunlink() → sndpcmdetachsubstream() → kfree(runtime). No synchronization prevents kfree(runtime) from completing while the drain path dereferences the stale pointer.
Fix by caching the needed runtime fields (noperiodwakeup, rate, buffersize) into local variables while still holding the stream lock, and using the cached values after the lock is released.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Compensating control
Mitigate by avoiding concurrent close() of the linked ALSA PCM stream file descriptor while snd_pcm_drain() is running, since the fix addresses a use-after-free triggered by concurrent close() on the linked stream's fd.
Event History
Frequently Asked Questions
What is the severity of CVE-2026-43437?
The severity of CVE-2026-43437 is high with a CVSS score of 7.8.
How do I fix CVE-2026-43437?
You can fix CVE-2026-43437 by applying the available patches provided in the Linux kernel updates.
What type of vulnerability is CVE-2026-43437?
CVE-2026-43437 is classified as a Use After Free vulnerability.
What impact does CVE-2026-43437 have on systems?
CVE-2026-43437 can lead to potential information disclosure and system instability due to the use-after-free condition in ALSA.
Which software is affected by CVE-2026-43437?
CVE-2026-43437 affects the Linux kernel, specifically the ALSA PCM subsystem.