{"id":"CVE-2026-80716","summary":"ALSA: pcm: wake linked drain waiters on unlink","details":"In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: pcm: wake linked drain waiters on unlink\n\nsnd_pcm_drain() on a linked stream parks an on-stack wait entry on the\ndrained peer's runtime-\u003esleep, and after schedule_timeout() removes it\nonly if that peer is still found in the caller's group.  If group\nmembership changes during the wait and the sleep ends by signal or\ntimeout (so autoremove_wake_function() does not run), finish_wait() is\nskipped and snd_pcm_drain() returns with the entry still queued on that\nstream's sleep list; a later wake_up() then walks a freed stack frame.\nThis is reachable by unlinking either the drained or the draining stream.\n\nUnlike the close path (snd_pcm_drop() -\u003e snd_pcm_post_stop()),\nsnd_pcm_unlink() never wakes the sleep queues.  Wake every group member\nunder the group lock before the membership change, so a linked drainer is\nreleased and drops its entry while the streams are still grouped.\n\nThe window was opened when snd_pcm_link_rwsem stopped being held across\nthe wait and the removal became conditional on group membership (see\nFixes). The later switch to finish_wait() kept that conditional removal,\nso the signal/timeout case remained.","modified":"2026-08-29T03:47:17.349523281Z","published":"2026-08-28T06:53:14.286Z","database_specific":{"cna_assigner":"Linux","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/80xxx/CVE-2026-80716.json"},"references":[{"type":"PACKAGE","url":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"},{"type":"WEB","url":"https://git.kernel.org/stable/c/1c1b7e8e545ce65e40f65b55c432765e058ea98f"},{"type":"WEB","url":"https://git.kernel.org/stable/c/2940cc3cf43c72126b74ee6376314c195382023a"},{"type":"WEB","url":"https://git.kernel.org/stable/c/3035bb784cea3f338934f5042dd3f35225a51b2e"},{"type":"WEB","url":"https://git.kernel.org/stable/c/c172e4c53321ee6429955295ea133bc3597a3ca9"},{"type":"WEB","url":"https://git.kernel.org/stable/c/db09bc4ab19ce548a078240d2374792523953500"},{"type":"WEB","url":"https://git.kernel.org/stable/c/e8315330e4ec09c0cac625515400e13d0ee22b81"},{"type":"WEB","url":"https://git.kernel.org/stable/c/e8b784a3f4fba3ea9c4d05138ecfa784a069627f"},{"type":"WEB","url":"https://git.kernel.org/stable/c/f495b6c4c8594122918552c9be2b51eb71647cd9"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/80xxx/CVE-2026-80716.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-80716"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"f57f3df03a8e6010e321fa0258d3e054713c3cb7"},{"fixed":"c172e4c53321ee6429955295ea133bc3597a3ca9"},{"fixed":"3035bb784cea3f338934f5042dd3f35225a51b2e"},{"fixed":"1c1b7e8e545ce65e40f65b55c432765e058ea98f"},{"fixed":"e8b784a3f4fba3ea9c4d05138ecfa784a069627f"},{"fixed":"e8315330e4ec09c0cac625515400e13d0ee22b81"},{"fixed":"2940cc3cf43c72126b74ee6376314c195382023a"},{"fixed":"db09bc4ab19ce548a078240d2374792523953500"},{"fixed":"f495b6c4c8594122918552c9be2b51eb71647cd9"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-80716.json"}},{"package":{"name":"Kernel","ecosystem":"Linux"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"5.1.0"},{"fixed":"5.10.265"}]},{"type":"ECOSYSTEM","events":[{"introduced":"5.11.0"},{"fixed":"5.15.216"}]},{"type":"ECOSYSTEM","events":[{"introduced":"5.16.0"},{"fixed":"6.1.183"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.2.0"},{"fixed":"6.6.151"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.7.0"},{"fixed":"6.12.103"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.13.0"},{"fixed":"6.18.44"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.19.0"},{"fixed":"7.1.8"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-80716.json"}}],"schema_version":"1.9.0"}