CVE-2026-89500: ring-buffer: Make cpu_buffer::free_page a buffer_data_read_page
In the Linux kernel, the following vulnerability has been resolved:
ring-buffer: Make cpubuffer::freepage a bufferdatareadpage
Discarding a cached reader page after a concurrent ring buffer resize uses the new global subbuforder for the freepages() call. This mismatched order may crashes the kernel or leaks memory because the cached page was allocated under the old size.
Save the actual freepage order alongside the page address to ensure we always refer to the correct value and do not rely on the potentially stalled cpubuffer->subbuforder value. The simplest is to make freepage a bufferdatareadpage which already covers exactly what we need: a page address and a page order.
Event History
Frequently Asked Questions
Which systems are exposed to this issue?
Systems are exposed when a cached ring-buffer reader page is discarded after a concurrent ring-buffer resize. The problem arises because the cached page may have been allocated with a different sub-buffer order than the current global order.
What is the expected impact if the mismatched allocation order is used?
Using the new global sub-buffer order to free a page allocated under the old size can crash the kernel or leak memory.