{"id":14978,"date":"2026-09-04T19:02:20","date_gmt":"2026-09-04T11:02:20","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-63951"},"modified":"2026-09-04T19:02:20","modified_gmt":"2026-09-04T11:02:20","slug":"cve-2026-63951","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-63951","title":{"rendered":"CVE-2026-63951 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nzram: fix use-after-f"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>zram: fix use-after-free in zram_writeback_endio<\/p>\n<p>A crash was observed in zram_writeback_endio due to a NULL pointer<br \/>\ndereference in wake_up.  The root cause is a race condition between the<br \/>\nbio completion handler (zram_writeback_endio) and the writeback task.<\/p>\n<p>In zram_writeback_endio, wake_up() is called on &amp;wb_ctl-&gt;done_wait after<br \/>\nreleasing wb_ctl-&gt;done_lock.  This creates a race window where the<br \/>\nwriteback task can see num_inflight become 0, return, and free wb_ctl<br \/>\nbefore zram_writeback_endio calls wake_up().<\/p>\n<p>CPU 0 (zram_writeback_endio)     CPU 1 (writeback_store)<br \/>\n============================     ============================<br \/>\n                                 zram_writeback_slots<br \/>\n                                   zram_submit_wb_request<br \/>\n                                   zram_submit_wb_request<br \/>\n                                   wait_event(wb_ctl-&gt;done_wait)<br \/>\nspin_lock(&amp;wb_ctl-&gt;done_lock);<br \/>\nlist_add(&amp;req-&gt;entry, &amp;wb_ctl-&gt;done_reqs);<br \/>\nspin_unlock(&amp;wb_ctl-&gt;done_lock);<br \/>\nwake_up(&amp;wb_ctl-&gt;done_wait);<br \/>\n                                   zram_complete_done_reqs<br \/>\nspin_lock(&amp;wb_ctl-&gt;done_lock);<br \/>\nlist_add(&amp;req-&gt;entry, &amp;wb_ctl-&gt;done_reqs);<br \/>\nspin_unlock(&amp;wb_ctl-&gt;done_lock);<br \/>\n                                   while (num_inflight) &gt; 0)<br \/>\n                                     spin_lock(&amp;wb_ctl-&gt;done_lock);<br \/>\n                                     list_del(&amp;req-&gt;entry);<br \/>\n                                     spin_unlock(&amp;wb_ctl-&gt;done_lock);<br \/>\n                                     \/\/ num_inflight becomes 0<br \/>\n                                     atomic_dec(num_inflight);<\/p>\n<p>                                 \/\/ Leave zram_writeback_slots<br \/>\n                                 \/\/ Free wb_ctl<br \/>\n                                 release_wb_ctl(wb_ctl);<br \/>\n\/\/ UAF crash!<br \/>\nwake_up(&amp;wb_ctl-&gt;done_wait);<\/p>\n<p>This patch fixes this race by using RCU.  By protecting wb_ctl with<br \/>\nrcu_read_lock() in zram_writeback_endio and using kfree_rcu() to free it,<br \/>\nwe ensure that wb_ctl remains valid during the execution of<br \/>\nzram_writeback_endio.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>zram: fix use-after-free in zram_writeback_endio<\/p>\n<p>A crash was observed in zram_writeback_endio due to a NULL pointer<br \/>\ndereference in<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-14978","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/14978","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=14978"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=14978"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=14978"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}