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

io_uring/poll: fix multishot recv missing EOF on wakeup race

When a socket send and shutdown() happen back-to-back, both fire
wake-ups before the receiver's task_work has a chance to run. The first
wake gets poll ownership (poll_refs=1), and the second bumps it to 2.
When io_poll_check_events() runs, it calls io_poll_issue() which does a
recv that reads the data and returns IOU_RETRY. The loop then drains all
accumulated refs (atomic_sub_return(2) -> 0) and exits, even though only
the first event was consumed. Since the shutdown is a persistent state
change, no further wakeups will happen, and the multishot recv can hang
forever.

Check specifically for HUP in the poll loop, and ensure that another
loop is done to check for status if more than a single poll activation
is pending. This ensures we don't lose the shutdown event.
Published: 2026-04-03
Score: 5.5 Medium
EPSS: n/a
KEV: No
Impact: Denial of Service via multishot recv hang
Action: Apply patch
AI Analysis

Impact

A race condition exists in the Linux kernel's io_uring/poll implementation. When a socket is sent to and immediately shut down, two wake‑ups occur before the receiver task can process them. The first wake acquires poll ownership, the second increments it, and when the poll loop checks for events it processes only one receive and then exits, discarding the shutdown event. As no further wake‑ups will happen, the multishot receive loop can hang indefinitely, effectively blocking the application or service that relies on the socket. This results in a denial of service condition for the affected process.

Affected Systems

The flaw affects all Linux kernel distributions. Any system running a kernel that includes the io_uring/poll code without the applied fix is vulnerable. The precise kernel versions are not enumerated in the data, so all recent releases prior to the fix are considered at risk.

Risk and Exploitability

The vulnerability is a concurrency race that can lead to a complete service blockage. No publicly disclosed exploit path is provided, and the EPSS score is unavailable; however, the nature of the defect means that any code using multishot io_uring poll operations could be impacted. The CISA KEV catalog does not list it, which suggests it may not yet have been widely exploited. Nonetheless, the potential for a denial of service in a kernel context warrants immediate attention.

Generated by OpenCVE AI on April 3, 2026 at 18:40 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to a version where the patch is applied
  • Verify the kernel version matches the fix commit identifiers
  • Consider disabling io_uring in affected workloads until the kernel is updated

Generated by OpenCVE AI on April 3, 2026 at 18:40 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 04 Apr 2026 01:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-367
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Fri, 03 Apr 2026 21:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362

Fri, 03 Apr 2026 16:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: io_uring/poll: fix multishot recv missing EOF on wakeup race When a socket send and shutdown() happen back-to-back, both fire wake-ups before the receiver's task_work has a chance to run. The first wake gets poll ownership (poll_refs=1), and the second bumps it to 2. When io_poll_check_events() runs, it calls io_poll_issue() which does a recv that reads the data and returns IOU_RETRY. The loop then drains all accumulated refs (atomic_sub_return(2) -> 0) and exits, even though only the first event was consumed. Since the shutdown is a persistent state change, no further wakeups will happen, and the multishot recv can hang forever. Check specifically for HUP in the poll loop, and ensure that another loop is done to check for status if more than a single poll activation is pending. This ensures we don't lose the shutdown event.
Title io_uring/poll: fix multishot recv missing EOF on wakeup race
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-04-03T15:15:51.928Z

Reserved: 2026-01-13T15:37:46.022Z

Link: CVE-2026-23473

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-04-03T16:16:35.120

Modified: 2026-04-03T16:16:35.120

Link: CVE-2026-23473

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-04-03T00:00:00Z

Links: CVE-2026-23473 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-04-03T21:15:40Z

Weaknesses