UBUNTU-CVE-2026-89747: Use After Free
In the Linux kernel, the following vulnerability has been resolved: tracing: Fix use-after-free in tracepipe read on sub-buffer order change Writing to buffersubbufsizekb calls ringbuffersubbuforderset(), which frees every sub-buffer of the ring buffer, including the reader page, and replaces them with newly allocated ones. Readers of tracepipe hold pointers into those pages. ringbufferpeek() looks up an event under cpubuffer->readerlock but returns the event pointer after dropping the lock, and peeknextentry() then calls ringbuffereventlength() and ringbuffereventdata() on it. If the sub-buffer order is changed in that window, the reader dereferences freed memory: BUG: KASAN: use-after-free in ringbufferpeek+0x3e0/0x430 Read of size 1 at addr ffff88802a4cf010 by task syz-executor989/6002 Freed by: freebufferpage kernel/trace/ringbuffer.c:398 [inline] ringbuffersubbuforderset+0x1325/0x18e0 kernel/trace/ringbuffer.c:7444 buffersubbufsizewrite+0x182/0x280 kernel/trace/trace.c:8221 Take traceaccesslock(RINGBUFFERALLCPUS) around the order change. This is the lock tracepipe readers already hold across their entire peek-and-print loop, so the swap can no longer race with a reader that is dereferencing a peeked event.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Compensating control
Take trace_access_lock(RING_BUFFER_ALL_CPUS) around the ring buffer sub-buffer order change to prevent trace_pipe readers from dereferencing freed pages.
Event History
Frequently Asked Questions
Who is exposed to this issue?
Systems using the listed Ubuntu Linux kernel packages are affected by a local use-after-free condition in tracing. The severity vector indicates local access and low privileges are required; no user interaction is required.
What must occur for exploitation to be possible?
An attacker needs to race a trace_pipe reader with a change to buffer_subbuf_size_kb. Changing the sub-buffer order frees and replaces ring-buffer pages while the reader may still hold an event pointer into the old pages.
What is the impact of a successful race?
The trace_pipe reader can dereference freed memory, resulting in a use-after-free. The supplied severity vector rates confidentiality, integrity, and availability impact as high.
Is there a documented workaround if an updated kernel cannot be deployed immediately?
No workaround is provided in the available data. The described fix serializes sub-buffer order changes with trace_pipe readers using trace_access_lock(RING_BUFFER_ALL_CPUS).