---
id: CVE-2025-21836
title: |-
  In the Linux kernel, the following vulnerability has been resolved:

  io_uring/kbuf: reallocate buf lists on upgrade

  IORING_REGISTER_PBUF_RING can reuse an old struct io_buffer_list if it
  was created for legacy selected buffer and has be…
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  io_uring/kbuf: reallocate buf lists on upgrade

  IORING_REGISTER_PBUF_RING can reuse an old struct io_buffer_list if it
  was created for legacy selected buffer and has be…
severity: high
cvss: 7.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
vendor: linux
product: linux_kernel
affected:
  - 'linux_kernel >= 5.19, < 6.6.79'
  - 'linux_kernel >= 6.7, < 6.12.16'
  - 'linux_kernel >= 6.13, < 6.13.4'
  - linux_kernel = 6.14
patched:
  - linux_kernel 6.13.4
published: '2025-03-07'
updated: '2026-07-30'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2025-21836'
references:
  - url: 'https://git.kernel.org/stable/c/146a185f6c05ee263db715f860620606303c4633'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/2a5febbef40ce968e295a7aeaa5d5cbd9e3e5ad4'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/7d0dc28dae836caf7645fef62a10befc624dd17b'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/8802766324e1f5d414a81ac43365c20142e85603'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: >-
      https://u1f383.github.io/slides/talks/2025_Hexacon-Deja_Vu_in_Linux_io_uring_Breaking_Memory_Sharing_Again_After_Generations_of_Fixes.pdf
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
tags:
  - nvd
epss: 0.00247
epssPercentile: 0.14167
ingestedAt: '2026-07-30T06:53:10.406Z'
---

## Overview

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

io_uring/kbuf: reallocate buf lists on upgrade

IORING_REGISTER_PBUF_RING can reuse an old struct io_buffer_list if it
was created for legacy selected buffer and has been emptied. It violates
the requirement that most of the field should stay stable after publish.
Always reallocate it instead.

## Affected

- `linux_kernel >= 5.19, < 6.6.79`
- `linux_kernel >= 6.7, < 6.12.16`
- `linux_kernel >= 6.13, < 6.13.4`
- `linux_kernel = 6.14`

## Remediation

Upgrade past the affected range:

- `linux_kernel 6.13.4`
