CVE-2026-53191CWE-682

CVE-2026-53191

High · published June 25, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
2.3
In the wild
Unconfirmed
What it is

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

io_uring/net: inherit IORING_CQE_F_BUF_MORE across bundle recv retries

When a bundle recv retries inside io_recv_finish(), the merge logic OR

the saved cflags from the previous iteration with the cflags returned by

the new iteration:

cflags = req->cqe.flags | (cflags & CQE_F_MASK);

Bits listed in CQE_F_MASK are inherited from the new iteration, and all

other bits (notably IORING_CQE_F_BUFFER and the buffer ID) come from the

saved cflags. Before this change CQE_F_MASK covered only

IORING_CQE_F_SOCK_NONEMPTY and IORING_CQE_F_MORE.

When using provided buffer rings (IOU_PBUF_RING_INC) with incremental

mode, and bundle recv, io_kbuf_inc_commit() can leave the head ring

entry partially consumed, __io_put_kbufs() then sets

IORING_CQE_F_BUF_MORE on the returned cflags so userspace knows the

buffer ID will be reused for subsequent completions.

Because IORING_CQE_F_BUF_MORE was not in CQE_F_MASK, the merge above

silently dropped it whenever the final retry iteration partially

consumed the buffer, and the subsequent req->cqe.flags = cflags &

~CQE_F_MASK save would have left a stale IORING_CQE_F_BUF_MORE in the

carried-over cflags had one been present. Userspace would then

wrongfully advance it ring head past an entry the kernel still uses.

Add IORING_CQE_F_BUF_MORE to CQE_F_MASK so it is both inherited from the

new iteration into the user-visible CQE and stripped from the saved

cflags between iterations.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00129 · 2.3th percentile
Weakness
CWE-682 · Incorrect Calculation
Published
2026-06-25T13:16Z
Affected products (9)
ProductVersionsFixed in
linux/linux_kernel≥ 6.12, < 6.12.946.12.94
linux/linux_kernel≥ 6.13, < 6.18.366.18.36
linux/linux_kernel≥ 6.19, < 7.0.137.0.13
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (4)
EPSS history
Timeline
  • 25 JUN 08:39Z
    io_uring/net: inherit IORING_CQE_F_BUF_MORE across bundle recv retries
    cvelistv5