{"id":24666,"date":"2026-09-16T20:32:37","date_gmt":"2026-09-16T12:32:37","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89979"},"modified":"2026-09-16T20:32:37","modified_gmt":"2026-09-16T12:32:37","slug":"cve-2026-89979","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89979","title":{"rendered":"CVE-2026-89979 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: pcm: Fix race b"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ALSA: pcm: Fix race between non-atomic ops and trigger-start<\/p>\n<p>We protect the races of the concurrent state transitions between<br \/>\natomic PCM ops, but the checks between the non-atomic ops (hw_params,<br \/>\nhw_free and prepare) and the atomic ops aren&#8217;t perfect; there is a<br \/>\ncheck of the conflicting PCM state at the beginning of hw_params &amp; co,<br \/>\nbut the atomic PCM ops can be still issued during the non-atomic PCM<br \/>\noperations.  An example such scenario is that a thread A re-issues the<br \/>\nPREPARE or HW_PARAMS for the already prepared stream, while another<br \/>\nthread B triggers the PCM start in the middle of the prepare<br \/>\noperation.  Although this usually doesn&#8217;t lead to much serious issues,<br \/>\nit can give some inconsistency as reported by syzkaller (such as<br \/>\nODEBUG warning).<\/p>\n<p>There are various atomic PCM ops, and basically the only problem is<br \/>\nthe PCM start as it operates from the PREPARED state.  Other trigger<br \/>\ncommands (stop, etc) are for the running or the other special state,<br \/>\nhence they are filtered as pre-condition.<\/p>\n<p>This patch is for preventing the PCM trigger-start during the non-<br \/>\natomic operations in order to address the problems above.<br \/>\nFortunately, the hw_params, hw_free and prepare operations call<br \/>\nsnd_pcm_buffer_access_lock(), and this can be used for checking the<br \/>\nconcurrent operations at the PCM trigger &#8212; which sets the<br \/>\nruntime-&gt;buffer_accessing to a negative (if possible), so the PCM<br \/>\ntrigger just needs to check the runtime-&gt;buffer_accessing value; if<br \/>\nit&#8217;s negative, it means the concurrent non-atomic PCM ops is running.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ALSA: pcm: Fix race between non-atomic ops and trigger-start<\/p>\n<p>We protect the races of the concurrent state transitions between<br \/>\natom<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-24666","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/24666","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=24666"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=24666"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=24666"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}