All vulnerabilities
CVE-2026-99159

Linux: ring-buffer: Fix the sub-buffer array base in rb_meta_subbuf_idx()

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)No scoreNo FIRST EPSS score in this snapshot yet
Fixed in2f1248b728b56d583ea454fedf239550c49f7b18Also 7469b3585ef5f65840d467d2caa811a9098c84b9, 25132363c723afc39aace8b098f547ab4a0ea759CVE List
Published28 Oct 2026Updated 28 Oct 2026CVE List

What fixes it

  • 2f1248b728b56d583ea454fedf239550c49f7b18LinuxCVE List
  • 7469b3585ef5f65840d467d2caa811a9098c84b9LinuxCVE List
  • 25132363c723afc39aace8b098f547ab4a0ea759LinuxCVE List

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

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

ring-buffer: Fix the sub-buffer array base in rb_meta_subbuf_idx()

On a persistent ring buffer, rb_meta_subbuf_idx() can return an index one sub-buffer too high. rb_setup_ids_meta_page() then fills subbuf_ids[] shifted by one and leaves subbuf_ids[0] NULL, which __rb_map_vma() dereferences when userspace maps trace_pipe_raw. rb_update_meta_reader() writes two such indices into meta->buffers[], which rb_cpu_meta_valid() would reject on the next boot, discarding the previous boot's trace.

A CPU's sub-buffer array starts after its meta header and the nr_subbufs integers that follow, aligned up to a sub-buffer. rb_meta_subbuf_idx() inverts that calculation but skips only the integers, not the header, so its base is one sub-buffer low whenever the omitted header size crosses the alignment boundary.

Invert the calculation with rb_subbufs_from_meta() rather than repeating it. rb_range_buffer() maps an index back to an address through the same helper, so the two directions can no longer disagree.

Text from CVE List

Affected versions 8

  • Linuxaffected: b14d032973d4e6c36e025e96ea3437de53d072d9 before 2f1248b728b56d583ea454fedf239550c49f7b18CVE List
  • Linuxaffected: b14d032973d4e6c36e025e96ea3437de53d072d9 before 7469b3585ef5f65840d467d2caa811a9098c84b9CVE List
  • Linuxaffected: b14d032973d4e6c36e025e96ea3437de53d072d9 before 25132363c723afc39aace8b098f547ab4a0ea759CVE List
  • Linuxaffected: 6.12CVE List
  • Linuxunaffected: all versions before 6.12CVE List
  • Linuxunaffected: 6.18.59 through 6.18.*CVE List
  • Linuxunaffected: 7.2.13 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 3