ZeroHour

CVE-2026-89748

mass

Ring buffer corruption flaw in Linux kernel tracing reader swap

CVSS 3.1
7.8 high
EPSS
Published
()
Modified
AI analysis

The Linux kernel's tracing subsystem contains a logic error in simple_ring_buffer_swap_reader_page(): its retry counter is tested with '!retry', which inverts the intended outcomes on the final retry attempt. When the last link replacement succeeds, the function wrongly returns an error after the link is already updated; when it fails, the function falls through and updates the head and reader pointers as if it had succeeded, which can corrupt the trace ring buffer. The flaw is triggered by repeated failed link replacements during reader-page swaps (e.g., under contention), and a local attacker with low privileges who can reach this code path could leverage the resulting corruption for high impact to confidentiality, integrity, and availability (CVSS 7.8), consistent with kernel memory corruption and potential privilege escalation. Any Linux kernel build containing the tracing 'simple ring buffer' reader-swap implementation is affected; the advisory does not specify an exact version range. There is no known public PoC and the issue is not in CISA's KEV catalog, so no exploitation is currently known.

What to do: Apply your distribution's kernel update once the fix (treating only a negative retry counter as exhaustion and returning -EBUSY) is backported, and verify whether your running kernel includes the simple ring buffer reader-swap code. Restrict untrusted local users' access to tracing interfaces (tracefs/sysfs) on multi-user hosts. Monitor local privilege-escalation attempts and unexpected kernel warnings or trace-ring corruption until patched.

Affected
Linux kernel
Estimated exposure
massPotentially billions of devices run Linux kernels (Android alone exceeds 3 billion active devices, plus servers and embedded systems), though practical risk is… — Linux is ubiquitous across servers, mobile, and embedded deployments, so any kernel build carrying the buggy tracing code implies mass exposure in principle, while the code path requires local access and is a recent addition so…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

In the Linux kernel, the following vulnerability has been resolved: tracing: Fix retry exhaustion in simple ring buffer reader swap simple_ring_buffer_swap_reader_page() starts with retry set to 8 and post-decrements it only after a failed link replacement. On the final attempt, a successful replacement leaves retry at zero, while a failed replacement leaves it at -1. The current !retry test reverses both outcomes. It returns an error after a successful final replacement, leaving the link update complete but the reader bookkeeping unfinished. After a failed final replacement, it falls through and updates the head and reader pointers as though the replacement succeeded, which can corrupt the ring. Treat only a negative counter as exhaustion and return the documented -EBUSY error.

Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

In the news

No ingested article mentions this CVE yet.