CVE-2026-53191: io_uring/net: inherit IORING_CQE_F_BUF_MORE across bundle recv retries

Published Jun 25, 2026
·
Updated

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

iouring/net: inherit IORINGCQEFBUFMORE across bundle recv retries

When a bundle recv retries inside iorecvfinish(), the merge logic OR the saved cflags from the previous iteration with the cflags returned by the new iteration: cflags = req->cqe.flags | (cflags & CQEFMASK);

Bits listed in CQEFMASK are inherited from the new iteration, and all other bits (notably IORINGCQEFBUFFER and the buffer ID) come from the saved cflags. Before this change CQEFMASK covered only IORINGCQEFSOCKNONEMPTY and IORINGCQEFMORE.

When using provided buffer rings (IOUPBUFRINGINC) with incremental mode, and bundle recv, iokbufinccommit() can leave the head ring entry partially consumed, ioputkbufs() then sets IORINGCQEFBUFMORE on the returned cflags so userspace knows the buffer ID will be reused for subsequent completions.

Because IORINGCQEFBUFMORE was not in CQEFMASK, the merge above silently dropped it whenever the final retry iteration partially consumed the buffer, and the subsequent req->cqe.flags = cflags & ~CQEFMASK save would have left a stale IORINGCQEFBUFMORE 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 IORINGCQEFBUFMORE to CQEFMASK so it is both inherited from the new iteration into the user-visible CQE and stripped from the saved cflags between iterations.

Affected Software

10 affected components
Linux Linux kernel
Linux Linux kernel>=6.12<6.12.94
Linux Linux kernel>=6.13<6.18.36
Linux Linux kernel>=6.19<7.0.13
Linux Linux kernel=7.1-rc1
Linux Linux kernel=7.1-rc2
Linux Linux kernel=7.1-rc3
Linux Linux kernel=7.1-rc4
Linux Linux kernel=7.1-rc5
Linux Linux kernel=7.1-rc6

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Configuration

    Update the kernel logic in io_uring/net so that IORING_CQE_F_BUF_MORE is included in CQE_F_MASK; this ensures that the merge logic ORs/merges cflags correctly and preserves IORING_CQE_F_BUF_MORE across bundle recv retries, preventing it from being silently dropped or left stale.

    Linux kernel io_uring/net CQE_F_MASK = Add IORING_CQE_F_BUF_MORE to CQE_F_MASK (so IORING_CQE_F_BUF_MORE is inherited across bundle recv retries)

Event History

Jun 25, 2026
CVE Published
via MITRE·08:39 AM
Data Sourced
via MITRE·08:39 AM
DescriptionSeverity
Data Sourced
via NVD·09:16 AM
RemedyDescriptionSeverityAffected Software

Frequently Asked Questions

1

Which deployments are exposed to this issue?

The issue affects Linux kernel users of io_uring bundle receive with provided buffer rings in incremental mode (IOU_PBUF_RING_INC). Systems not using that combination are not described as affected.

2

What conditions cause the incorrect completion flags?

A bundle receive must retry within io_recv_finish(), and the final retry must partially consume a provided buffer. Under those conditions, IORING_CQE_F_BUF_MORE can be dropped or retained incorrectly across retry iterations.

3

How can an application identify that it may be encountering the problem?

Applications using incremental provided buffer rings and bundle receive can inspect completion behavior for inconsistent IORING_CQE_F_BUF_MORE handling, including a missing flag when a buffer ID should be reused or a stale flag carried into a later completion.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203