CVE-2026-53191
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
25/06/2026
Last modified:
06/07/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
io_uring/net: inherit IORING_CQE_F_BUF_MORE across bundle recv retries<br />
<br />
When a bundle recv retries inside io_recv_finish(), the merge logic OR<br />
the saved cflags from the previous iteration with the cflags returned by<br />
the new iteration:<br />
cflags = req->cqe.flags | (cflags & CQE_F_MASK);<br />
<br />
Bits listed in CQE_F_MASK are inherited from the new iteration, and all<br />
other bits (notably IORING_CQE_F_BUFFER and the buffer ID) come from the<br />
saved cflags. Before this change CQE_F_MASK covered only<br />
IORING_CQE_F_SOCK_NONEMPTY and IORING_CQE_F_MORE.<br />
<br />
When using provided buffer rings (IOU_PBUF_RING_INC) with incremental<br />
mode, and bundle recv, io_kbuf_inc_commit() can leave the head ring<br />
entry partially consumed, __io_put_kbufs() then sets<br />
IORING_CQE_F_BUF_MORE on the returned cflags so userspace knows the<br />
buffer ID will be reused for subsequent completions.<br />
<br />
Because IORING_CQE_F_BUF_MORE was not in CQE_F_MASK, the merge above<br />
silently dropped it whenever the final retry iteration partially<br />
consumed the buffer, and the subsequent req->cqe.flags = cflags &<br />
~CQE_F_MASK save would have left a stale IORING_CQE_F_BUF_MORE in the<br />
carried-over cflags had one been present. Userspace would then<br />
wrongfully advance it ring head past an entry the kernel still uses.<br />
<br />
Add IORING_CQE_F_BUF_MORE to CQE_F_MASK so it is both inherited from the<br />
new iteration into the user-visible CQE and stripped from the saved<br />
cflags between iterations.
Impact
Base Score 3.x
7.80
Severity 3.x
HIGH
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.12 (including) | 6.12.94 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (including) | 6.18.36 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 (including) | 7.0.13 (excluding) |
| cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.1:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.1:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.1:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.1:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.1:rc6:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page



