CVE-2026-80716

ALSA: pcm: wake linked drain waiters on unlink

State
Published
Severity
7.8 High
Published
Aug 28, 2026
Updated
Oct 16, 2026
Reserved
Aug 26, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

ALSA: pcm: wake linked drain waiters on unlink

snd_pcm_drain() on a linked stream parks an on-stack wait entry on the drained peer's runtime->sleep, and after schedule_timeout() removes it only if that peer is still found in the caller's group. If group membership changes during the wait and the sleep ends by signal or timeout (so autoremove_wake_function() does not run), finish_wait() is skipped and snd_pcm_drain() returns with the entry still queued on that stream's sleep list; a later wake_up() then walks a freed stack frame. This is reachable by unlinking either the drained or the draining stream.

Unlike the close path (snd_pcm_drop() -> snd_pcm_post_stop()), snd_pcm_unlink() never wakes the sleep queues. Wake every group member under the group lock before the membership change, so a linked drainer is released and drops its entry while the streams are still grouped.

The window was opened when snd_pcm_link_rwsem stopped being held across the wait and the removal became conditional on group membership (see Fixes). The later switch to finish_wait() kept that conditional removal, so the signal/timeout case remained.

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • f57f3df03a8e6010e321fa0258d3e054713c3cb7 to before c172e4c53321ee6429955295ea133bc3597a3ca9Affected
  • f57f3df03a8e6010e321fa0258d3e054713c3cb7 to before 3035bb784cea3f338934f5042dd3f35225a51b2eAffected
  • f57f3df03a8e6010e321fa0258d3e054713c3cb7 to before 1c1b7e8e545ce65e40f65b55c432765e058ea98fAffected
  • f57f3df03a8e6010e321fa0258d3e054713c3cb7 to before e8b784a3f4fba3ea9c4d05138ecfa784a069627fAffected
  • f57f3df03a8e6010e321fa0258d3e054713c3cb7 to before e8315330e4ec09c0cac625515400e13d0ee22b81Affected
  • f57f3df03a8e6010e321fa0258d3e054713c3cb7 to before 2940cc3cf43c72126b74ee6376314c195382023aAffected
  • f57f3df03a8e6010e321fa0258d3e054713c3cb7 to before db09bc4ab19ce548a078240d2374792523953500Affected
  • f57f3df03a8e6010e321fa0258d3e054713c3cb7 to before f495b6c4c8594122918552c9be2b51eb71647cd9Affected
LinuxLinux
  • 5.1Affected
  • before 5.1Not affected
  • 5.10.265 through 5.10.*Not affected
  • 5.15.216 through 5.15.*Not affected
  • 6.1.183 through 6.1.*Not affected
  • 6.6.151 through 6.6.*Not affected
  • 6.12.103 through 6.12.*Not affected
  • 6.18.44 through 6.18.*Not affected
  • 7.1.8 through 7.1.*Not affected
  • 7.2 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.