Cloudanix VulnDB

CVE-2026-89771

High · 7.8

CVSS

7.8

EPSS

0.1%

Published

Sep 11, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A timing flaw in the Linux kernel's tracing mechanism could let nearby users interfere with buffer operations and potentially crash the system or gain more access.

Exploitation
Local Privilege
Attacker needs
Low Privilege
Complexity
Moderate
Impact
Full Compromise
Component
OS kernel
Class
Race Condition
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Race condition in Linux kernel ring-buffer allows lockless reads of trace_buffer::subbuf_size in ring_buffer_read_page() and ring_buffer_read_start() to occur concurrently with resize via ring_buffer_subbuf_order_set(), leading to inconsistent buffer state or memory access violations.

Why it matters to the business

Local attackers on affected systems may trigger kernel crashes, data corruption in tracing buffers, or potential privilege escalation, impacting stability of production Linux workloads that rely on ftrace or similar ring-buffer consumers; low exploitation likelihood reduces immediate urgency.

How an attack unfolds

An attacker with local user privileges enables tracing, starts a reader process calling ring_buffer_read_start or ring_buffer_read_page while simultaneously triggering a subbuffer order change; the race on subbuf_size can be exploited to read invalid memory or bypass resize_disabled protections before the mutex fix.

How to fix it

Update to a Linux kernel version containing the fix that replaces subbuf_size reads with bpage::order, holds the trace_buffer mutex in ring_buffer_read_start, removes the now-unused subbuf_size field, and introduces rb_subbuf_capacity and rb_page_capacity accessors; rebuild and reboot affected systems.

How to confirm the fix worked

Verify kernel source contains the described changes to ring_buffer.c (mutex acquisition, bpage::order usage, removal of subbuf_size); test by exercising resize and read operations under load to confirm absence of races; confirm via kernel version strings post-update.

Typical attack path

  1. Obtain local unprivileged access on target Linux system
  2. Load or enable kernel tracing that uses ring buffers
  3. Concurrently invoke ring_buffer_subbuf_order_set while reader threads execute
  4. Trigger inconsistent state to cause denial of service or attempt memory corruption for escalation

How to detect it

Review kernel logs for ring-buffer related warnings, oops, or warnings around resize and read paths; examine ftrace or perf traces for concurrent subbuf modifications; no widespread in-the-wild indicators expected given low EPSS and absence from KEV.

What your security team should do

  • Prioritize kernel updates on systems with heavy tracing usage within standard patch windows given flat low EPSS and no KEV listing
  • Audit custom tracing configurations for resize operations and consider disabling dynamic subbuf resizing where possible
  • Monitor upstream stable kernel releases for backports of the ring-buffer fix

The record

In the Linux kernel, the following vulnerability has been resolved: ring-buffer: Fix subbuf resize race with ring buffer readers trace_buffer subbuf_size is read lockless in ring_buffer_read_page() and ring_buffer_read_start(), while it can simultaneously be resized with ring_buffer_subbuf_order_set(). Instead of trace_buffer::subbuf_size, use bpage::order in ring_buffer_read_start() and ring_buffer_read_page(). In ring_buffer_read_start(), even with resize_disabled, there is still a possibility of a race with a buffer modification. Hold the trace_buffer mutex to synchronise with any pending ring buffer order modification. trace_buffer::subbuf_size is now actually useless, remove it. Also, create accessors rb_subbuf_capacity() and rb_page_capacity() which return the actual size available for storing events, while rb_subbuf_size() returns the actual subbuf page-size.

Affected packages

Ecosystem Package Introduced Fixed