# CVE-2026-63951: linux: In the Linux kernel, the following vulnerability has been resolved:  zram: fix use-after-free in zram_writeback_endio...

CVE-2026-63951 is fixed in linux on 1 platform by DEBIAN-CVE-2026-63951 (version 7.0.12-1), released July 20, 2026. It is not reported as exploited. Patch Radar priority: High.

- Web page: https://patchblox.com/security/cve/CVE-2026-63951
- Priority: High
- CVSS: 7.8 (high)
- EPSS: 0.0018
- CISA KEV: not listed
- Exploited (vendor report): no
- Publicly disclosed: no
- Published: Jul 19, 2026

## Description

In the Linux kernel, the following vulnerability has been resolved:  zram: fix use-after-free in zram_writeback_endio  A crash was observed in zram_writeback_endio due to a NULL pointer dereference in wake_up.  The root cause is a race condition between the bio completion handler (zram_writeback_endio) and the writeback task.  In zram_writeback_endio, wake_up() is called on &wb_ctl->done_wait after releasing wb_ctl->done_lock.  This creates a race window where the writeback task can see num_inflight become 0, return, and free wb_ctl before zram_writeback_endio calls wake_up().  CPU 0 (zram_writeback_endio)     CPU 1 (writeback_store) ============================     ============================                                  zram_writeback_slots                                    zram_submit_wb_request                                    zram_submit_wb_request                                    wait_event(wb_ctl->done_wait) spin_lock(&wb_ctl->done_lock); list_add(&req->entry, &wb_ctl->done_reqs); spin_unlock(&wb_ctl->done_lock); wake_up(&wb_ctl->done_wait);                                    zram_complete_done_reqs spin_lock(&wb_ctl->done_lock); list_add(&req->entry, &wb_ctl->done_reqs); spin_unlock(&wb_ctl->done_lock);                                    while (num_inflight) > 0)                                      spin_lock(&wb_ctl->done_lock);                                      list_del(&req->entry);                                      spin_unlock(&wb_ctl->done_lock);                                      // num_inflight becomes 0                                      atomic_dec(num_inflight);                                   // Leave zram_writeback_slots                                  // Free wb_ctl                                  release_wb_ctl(wb_ctl); // UAF crash! wake_up(&wb_ctl->done_wait);  This patch fixes this race by using RCU.  By protecting wb_ctl with rcu_read_lock() in zram_writeback_endio and using kfree_rcu() to free it, we ensure that wb_ctl remains valid during the execution of zram_writeback_endio.

## Where it's fixed

| Platform | Product | Fixed in | Fix | Released |
|---|---|---|---|---|
| Linux | linux Debian 14 | 7.0.12-1 | [DEBIAN-CVE-2026-63951](https://patchblox.com/security/data/fix/linux/debian-cve-2026-63951.md) | Jul 20, 2026 |

---

Data as of 2026-11-11T01:43:54Z UTC. Source: Patchblox Patch Radar (https://patchblox.com/security/patch-radar). Patchblox finds out-of-date software on Windows, macOS and Linux and updates it through release rings: https://patchblox.com/demo

Free to use with attribution: show "Data: Patchblox Patch Radar" with a link to https://patchblox.com/security/patch-radar. Terms, including what needs a written agreement: https://patchblox.com/security/patch-radar/use-the-data

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.
