CVE-2026-89718: zram: fix out-of-bounds access in writeback_store()

Published Sep 11, 2026
·
Updated

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

zram: fix out-of-bounds access in writebackstore()

Patch series "zram: fix stale scan bounds after reinitialization".

Both writebackstore() and readblockstate() derive their table scan bounds from zram->disksize before acquiring devlock. If the device is reset and reinitialized with a smaller disksize between that read and lock acquisition, the bound can describe the old table while the scan operates on the new one. This can lead to out-of-bounds slot accesses.

Move both bound calculations under devlock so each bound remains consistent with the table throughout its scan. Keep the fixes separate because the affected interfaces originate from different commits and can be backported independently.

This patch (of 2):

writebackstore() calculates the table scan bounds before taking devlock. A reset followed by reconfiguration with a smaller disksize can therefore replace zram->table while writebackstore() is waiting for the lock. Once it acquires the lock, it sees an initialized device but scans the new table using the old upper bound, resulting in an out-of-bounds access.

Calculate the number of pages while holding devlock so the scan bound matches the table protected by the lock.

Affected Software

1 affected component
Linux Linux kernel

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade zram to a version that resolves this vulnerability.

    Patch zram: fix stale scan bounds after reinitialization
  2. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Patch zram: fix out-of-bounds access in writeback_store()

Event History

Sep 11, 2026
CVE Published
via MITRE·07:46 PM
Data Sourced
via MITRE·07:46 PM
Description

Frequently Asked Questions

1

What timing is required for the out-of-bounds access to occur?

writeback_store() must read the device size and then wait to acquire dev_lock. During that interval, the zram device must be reset and reinitialized so that its table is replaced before writeback_store() begins its scan.

2

Does every zram reconfiguration create this condition?

The described out-of-bounds condition requires reinitialization with a smaller disksize. That makes the previously calculated scan bound larger than the replacement table.

3

What can be done if the fix cannot be applied immediately?

Avoid allowing writeback_store() activity to overlap with zram reset and reinitialization operations, particularly reconfiguration to a smaller disksize. The fix addresses the race by calculating the scan bound only after dev_lock is held.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203