{"id":"CVE-2026-53242","state":"PUBLISHED","title":"ALSA: PCM: Fix wait queue list corruption in snd_pcm_drain() on linked streams","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: PCM: Fix wait queue list corruption in snd_pcm_drain() on linked streams\n\nsnd_pcm_drain() uses init_waitqueue_entry which does not clear\nentry.prev/next, and add_wait_queue with a conditional\nremove_wait_queue that is skipped when to_check is no longer\nin the group after concurrent UNLINK.  The orphaned wait entry\nremains on the unlinked substream sleep queue.  On the next\ndrain iteration, add_wait_queue adds the entry to a new queue\nwhile still linked on the old one, corrupting both lists.  A\nsubsequent wake_up dereferences NULL at the func pointer\n(mapped from the spinlock at offset 0 of the misinterpreted\nwait_queue_head_t), causing a kernel panic.\n\nReplace init_waitqueue_entry/add_wait_queue/conditional\nremove_wait_queue with init_wait_entry/prepare_to_wait/\nfinish_wait.  init_wait_entry clears prev/next via\nINIT_LIST_HEAD on each iteration and sets\nautoremove_wake_function which auto-removes the entry on\nwake-up.  finish_wait safely handles both the already-removed\nand still-queued cases.","publishedAt":"2026-06-25T08:39:37.129Z","updatedAt":"2026-10-19T19:57:31.043Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"9baee36e8c5443411c4629afabafaff8a46a23fd","status":"affected","lessThan":"cac5bf3500ee6422cf64e0df0b5daeecfed42917","versionType":"git"},{"version":"f2cb2e0d27fb925c73a78f0ce7d6dbf68d3747c1","status":"affected","lessThan":"06eca2235a3fd281dddf25b0a97772b25b5bb573","versionType":"git"},{"version":"fc71f888994569f87d5bee20b1ac6c9c1e3a7a79","status":"affected","lessThan":"d842f26a167e77a36f3ed333b9fa99d36ef99fe6","versionType":"git"},{"version":"629cf09464cf98670996ea5c191dc9743e6f3f00","status":"affected","lessThan":"d68b621bb5a48051932f1017a6e1bc9b18f854d0","versionType":"git"},{"version":"ae8f8d30d334bad5b1b3cdb1eb8a0b771f55e432","status":"affected","lessThan":"b053fcd8912f06c30f932f5b8ec41c72de474695","versionType":"git"},{"version":"4a758e9a1f5ed722f83c4dd35f867fe811553bcb","status":"affected","lessThan":"cd98837db15f323463b8df07282ac723bd5c3fed","versionType":"git"},{"version":"9b1dbd69ba6f8f8c69bc7b77c2ce3b9c6ed05ba6","status":"affected","lessThan":"7c71a9522555ff137a9ca36b15d759ca04d84788","versionType":"git"},{"version":"9b1dbd69ba6f8f8c69bc7b77c2ce3b9c6ed05ba6","status":"affected","lessThan":"88fe2e3658726cb21ff2dcf9770bf672f9b9d31b","versionType":"git"},{"version":"c2f64e05a0587a83ec42dbd6b7a7ded79b2ff694","status":"affected","versionType":"git"},{"version":"5.10.253","status":"affected","lessThan":"5.10.259","versionType":"semver"},{"version":"6.1.167","status":"affected","lessThan":"6.1.176","versionType":"semver"},{"version":"6.6.130","status":"affected","lessThan":"6.6.143","versionType":"semver"},{"version":"6.12.78","status":"affected","lessThan":"6.12.94","versionType":"semver"},{"version":"6.18.19","status":"affected","lessThan":"6.18.36","versionType":"semver"},{"version":"6.19.9","status":"affected","lessThan":"6.20","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["sound/core/pcm_native.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"7.0","status":"affected"},{"version":"0","status":"unaffected","lessThan":"7.0","versionType":"semver"},{"version":"5.10.259","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"6.1.176","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.143","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.94","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.36","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.0.13","status":"unaffected","lessThanOrEqual":"7.0.*","versionType":"semver"},{"version":"7.1","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["sound/core/pcm_native.c"]}],"references":["https://git.kernel.org/stable/c/cac5bf3500ee6422cf64e0df0b5daeecfed42917","https://git.kernel.org/stable/c/06eca2235a3fd281dddf25b0a97772b25b5bb573","https://git.kernel.org/stable/c/d842f26a167e77a36f3ed333b9fa99d36ef99fe6","https://git.kernel.org/stable/c/d68b621bb5a48051932f1017a6e1bc9b18f854d0","https://git.kernel.org/stable/c/b053fcd8912f06c30f932f5b8ec41c72de474695","https://git.kernel.org/stable/c/cd98837db15f323463b8df07282ac723bd5c3fed","https://git.kernel.org/stable/c/7c71a9522555ff137a9ca36b15d759ca04d84788","https://git.kernel.org/stable/c/88fe2e3658726cb21ff2dcf9770bf672f9b9d31b","https://cert-portal.siemens.com/productcert/html/ssa-784472.html"],"weaknesses":["CWE-362"],"ingestedAt":"2026-10-29T20:12:16.098Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/53xxx/CVE-2026-53242.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-53242","state":"PUBLISHED","datePublished":"2026-06-25T08:39:37.129Z","dateUpdated":"2026-10-19T19:57:31.043Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-06-09T07:44:35.393Z"},"containers":{"cna":{"title":"ALSA: PCM: Fix wait queue list corruption in snd_pcm_drain() on linked streams","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: PCM: Fix wait queue list corruption in snd_pcm_drain() on linked streams\n\nsnd_pcm_drain() uses init_waitqueue_entry which does not clear\nentry.prev/next, and add_wait_queue with a conditional\nremove_wait_queue that is skipped when to_check is no longer\nin the group after concurrent UNLINK.  The orphaned wait entry\nremains on the unlinked substream sleep queue.  On the next\ndrain iteration, add_wait_queue adds the entry to a new queue\nwhile still linked on the old one, corrupting both lists.  A\nsubsequent wake_up dereferences NULL at the func pointer\n(mapped from the spinlock at offset 0 of the misinterpreted\nwait_queue_head_t), causing a kernel panic.\n\nReplace init_waitqueue_entry/add_wait_queue/conditional\nremove_wait_queue with init_wait_entry/prepare_to_wait/\nfinish_wait.  init_wait_entry clears prev/next via\nINIT_LIST_HEAD on each iteration and sets\nautoremove_wake_function which auto-removes the entry on\nwake-up.  finish_wait safely handles both the already-removed\nand still-queued cases."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"9baee36e8c5443411c4629afabafaff8a46a23fd","status":"affected","lessThan":"cac5bf3500ee6422cf64e0df0b5daeecfed42917","versionType":"git"},{"version":"f2cb2e0d27fb925c73a78f0ce7d6dbf68d3747c1","status":"affected","lessThan":"06eca2235a3fd281dddf25b0a97772b25b5bb573","versionType":"git"},{"version":"fc71f888994569f87d5bee20b1ac6c9c1e3a7a79","status":"affected","lessThan":"d842f26a167e77a36f3ed333b9fa99d36ef99fe6","versionType":"git"},{"version":"629cf09464cf98670996ea5c191dc9743e6f3f00","status":"affected","lessThan":"d68b621bb5a48051932f1017a6e1bc9b18f854d0","versionType":"git"},{"version":"ae8f8d30d334bad5b1b3cdb1eb8a0b771f55e432","status":"affected","lessThan":"b053fcd8912f06c30f932f5b8ec41c72de474695","versionType":"git"},{"version":"4a758e9a1f5ed722f83c4dd35f867fe811553bcb","status":"affected","lessThan":"cd98837db15f323463b8df07282ac723bd5c3fed","versionType":"git"},{"version":"9b1dbd69ba6f8f8c69bc7b77c2ce3b9c6ed05ba6","status":"affected","lessThan":"7c71a9522555ff137a9ca36b15d759ca04d84788","versionType":"git"},{"version":"9b1dbd69ba6f8f8c69bc7b77c2ce3b9c6ed05ba6","status":"affected","lessThan":"88fe2e3658726cb21ff2dcf9770bf672f9b9d31b","versionType":"git"},{"version":"c2f64e05a0587a83ec42dbd6b7a7ded79b2ff694","status":"affected","versionType":"git"},{"version":"5.10.253","status":"affected","lessThan":"5.10.259","versionType":"semver"},{"version":"6.1.167","status":"affected","lessThan":"6.1.176","versionType":"semver"},{"version":"6.6.130","status":"affected","lessThan":"6.6.143","versionType":"semver"},{"version":"6.12.78","status":"affected","lessThan":"6.12.94","versionType":"semver"},{"version":"6.18.19","status":"affected","lessThan":"6.18.36","versionType":"semver"},{"version":"6.19.9","status":"affected","lessThan":"6.20","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["sound/core/pcm_native.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"7.0","status":"affected"},{"version":"0","status":"unaffected","lessThan":"7.0","versionType":"semver"},{"version":"5.10.259","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"6.1.176","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.143","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.94","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.36","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.0.13","status":"unaffected","lessThanOrEqual":"7.0.*","versionType":"semver"},{"version":"7.1","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["sound/core/pcm_native.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/cac5bf3500ee6422cf64e0df0b5daeecfed42917"},{"url":"https://git.kernel.org/stable/c/06eca2235a3fd281dddf25b0a97772b25b5bb573"},{"url":"https://git.kernel.org/stable/c/d842f26a167e77a36f3ed333b9fa99d36ef99fe6"},{"url":"https://git.kernel.org/stable/c/d68b621bb5a48051932f1017a6e1bc9b18f854d0"},{"url":"https://git.kernel.org/stable/c/b053fcd8912f06c30f932f5b8ec41c72de474695"},{"url":"https://git.kernel.org/stable/c/cd98837db15f323463b8df07282ac723bd5c3fed"},{"url":"https://git.kernel.org/stable/c/7c71a9522555ff137a9ca36b15d759ca04d84788"},{"url":"https://git.kernel.org/stable/c/88fe2e3658726cb21ff2dcf9770bf672f9b9d31b"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The vulnerable code is reached from local userspace through ALSA PCM character-device ioctls such as SNDRV_PCM_IOCTL_LINK, SNDRV_PCM_IOCTL_UNLINK, and SNDRV_PCM_IOCTL_DRAIN. It is not reachable by remote network packets or adjacent/physical protocols.\nAC:L - The bug is a race, but the attacker can control both sides by using multiple PCM file descriptors/threads to link streams, block in drain, and concurrently unlink. No condition outside attacker control is required once suitable PCM devices are accessible.\nPR:L - No kernel capability check gates the vulnerable ioctl path, but the attacker needs local access to open ALSA PCM device nodes. That corresponds to a basic unprivileged local user with device access, not real root/admin privileges.\nUI:N - Exploitation is driven entirely by the attacker's own ioctl calls on opened PCM file descriptors. No victim user action is required.\nS:U - The vulnerability is in the kernel ALSA subsystem and affects kernel resources under the same security authority. It is not a VM escape, IOMMU bypass, or other cross-scope boundary violation.\nC:H - The documented failure is a panic, but the primitive is kernel wait-queue list corruption with an orphaned stack wait entry and cross-queue linkage under attacker-controlled timing. Under the higher-severity rule, this memory corruption is treated as potentially usable for kernel memory disclosure.\nI:H - The bug corrupts kernel wait-queue list pointers and can leave stale wait entries reachable by later wakeups. Although the observed path dereferences a NULL function pointer, this is kernel memory corruption plausibly usable for control-flow or privilege-impacting writes, so integrity is High.\nA:H - A subsequent wake_up can dereference a NULL/misinterpreted wait-queue function pointer and panic the kernel. This is a reliable high availability impact."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-09-02T12:49:37.764Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.10.253","versionEndExcluding":"5.10.259"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1.167","versionEndExcluding":"6.1.176"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6.130","versionEndExcluding":"6.6.143"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12.78","versionEndExcluding":"6.12.94"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.18.19","versionEndExcluding":"6.18.36"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.0","versionEndExcluding":"7.0.13"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"7.0","versionEndExcluding":"7.1"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.19.9"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"affected":[{"vendor":"Siemens","product":"SIMATIC S7-1500 TM MFP - GNU/Linux subsystem","defaultStatus":"unknown","versions":[{"version":"0","status":"affected","lessThan":"*","versionType":"custom"}]}],"references":[{"url":"https://cert-portal.siemens.com/productcert/html/ssa-784472.html"}],"providerMetadata":{"shortName":"siemens-SADP","orgId":"0b142b55-0307-4c5a-b3c9-f314f3fb7c5e","dateUpdated":"2026-10-15T01:22:56.393Z"},"x_adpType":"supplier"},{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-53242","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-16T15:27:33.806923Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-362","lang":"en","type":"CWE","description":"CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-19T19:57:31.043Z"}}]}}}