CVE-2026-53185

Summary

In the Linux kernel, the following vulnerability has been resolved:

zram: fix use-after-free in zram_bvec_write_partial()

zram_read_page() picks the sync or async backing device read path based on whether the parent bio is NULL. zram_bvec_write_partial() passes its parent bio down, so for ZRAM_WB slots the read is dispatched asynchronously and zram_read_page() returns 0 while the bio is still in flight. The caller then runs memcpy_from_bvec(), zram_write_page() and __free_page() on the buffer, leaving the async read to write into a freed page.

zram_bvec_read_partial() was switched to NULL in commit 4e3c87b9421d ("zram: fix synchronous reads") for the same reason; the write_partial counterpart was missed.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux8e654f8fbff52ac483fb69957222853d7e2fc588 < 0c2821665ff71be3f4b07ecece384669f2877f6aaffected
LinuxLinux8e654f8fbff52ac483fb69957222853d7e2fc588 < 77a602b505ce4802915853cfc435a4722fab3e64affected
LinuxLinux8e654f8fbff52ac483fb69957222853d7e2fc588 < c96786d6ff1acc1d54d9241e97767554c1dfdd5baffected
LinuxLinux8e654f8fbff52ac483fb69957222853d7e2fc588 < 198b5a14cca27263b9c14b20114c8092de15dfcbaffected
LinuxLinux8e654f8fbff52ac483fb69957222853d7e2fc588 < 732fd9f0b9c1cdc6dfd77162ded60df005182cc0affected
LinuxLinux4.14affected
LinuxLinux0 < 4.14unaffected
LinuxLinux6.6.143 <= 6.6.*unaffected
LinuxLinux6.12.94 <= 6.12.*unaffected
LinuxLinux6.18.36 <= 6.18.*unaffected
LinuxLinux7.0.13 <= 7.0.*unaffected
LinuxLinux7.1 <= *unaffected

Weaknesses

ADP Enrichment

kernel: zram: fix use-after-free in zram_bvec_write_partial()

Additional References

References