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

net/iucv: fix the recvmsg window update

iucv_sock_recvmsg() sends the HiperSockets-only AF_IUCV_FLAG_WIN without
testing the transport, so on a classic z/VM socket iucv_send_ctrl() sizes
the skb through a NULL iucv->hs_dev. SO_MSGLIMIT accepts 1, so msglimit / 2
is zero and one recvmsg() on its own socket is enough for an unprivileged
process to take a spurious disconnect.

It also calls iucv_send_ctrl() under spin_lock_bh(&message_q.lock), which
allocates GFP_KERNEL inside a section the code treats as atomic. Sending
outside that lock lets two recvmsg() reach afiucv_hs_send() at once, where
msg_recv is sampled for the advertised window and subtracted after
dev_queue_xmit() -- and sendmsg reaches that counter under lock_sock()
while recvmsg holds no socket lock, so both can subtract the same value,
the counter goes negative and the credit reaches the peer twice.

Test the transport, claim the credit with atomic_xchg() after the last
error exit and hand it back if the transmit fails, and send once the lock
is dropped.
Published: 2026-10-28
Score: n/a
EPSS: n/a
KEV: No
Impact: Unprivileged Denial of Service via spurious socket disconnects and negative credit counter
Action: Immediate Patch
AI Analysis

Impact

The fix addresses an issue in the Linux kernel’s IUCV socket implementation where the recvmsg() function would send a window update flag without verifying the transport type. On classic z/VM sockets this results in a NULL pointer dereference for the HiperSockets device, causing a spurious disconnect for an unprivileged process. Additionally, the code incorrectly allocates memory while holding a spin lock that is treated as atomic, allowing concurrent recvmsg() calls to manipulate a shared credit counter. This can lead to the counter becoming negative and the peer receiving credit twice, potentially allowing an attacker to affect the flow control state. The vulnerability is mitigated by the patch; before the fix, an attacker could exploit it to induce denial‑of‑service or disrupt kernel IUCV communication.

Affected Systems

The vulnerability impacts Linux kernel implementations that provide the IUCV socket interface, specifically those versions that include the buggy recvmsg() logic. No specific kernel releases are listed in the data; the issue applies to any kernel that has not yet applied the kernel commit that introduces the fix. The affected systems are all machines running a Linux kernel that supports IUCV sockets.

Risk and Exploitability

The CVE does not provide a CVSS score, EPSS availability, or KEV status, so the formal risk level is unknown. Because the flaw is triggered by unprivileged processes calling recvmsg() on a classic z/VM socket, an attacker could readily trigger the fault without special access. The potential impact includes causing unnecessary socket disconnects and out‑of‑range credit counters, which could degrade system reliability or create a subtle denial‑of‑service vector. The lack of EPSS data means the current exploitation probability is unclear, but the absence of a KEV listing suggests no widespread, active exploits have been reported yet.

Generated by OpenCVE AI on October 28, 2026 at 11:40 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that has incorporated the commit fixing iucv_sock_recvmsg() and related atomic allocation issues
  • Verify that the kernel's IUCV socket implementation is compiled with the necessary configuration to prevent window updates on non‑HiperSockets transports
  • If an immediate kernel upgrade is not feasible, monitor for kernel updates from trusted provenance and apply them as soon as possible
  • Ensure that only trusted and necessary processes can call recvmsg() on IUCV sockets by employing proper capability or user namespace restrictions

Generated by OpenCVE AI on October 28, 2026 at 11:40 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 28 Oct 2026 14:30:00 +0000

Type Values Removed Values Added
First Time appeared Linux linux
Vendors & Products Linux linux

Wed, 28 Oct 2026 12:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-665
CWE-682

Wed, 28 Oct 2026 10:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: net/iucv: fix the recvmsg window update iucv_sock_recvmsg() sends the HiperSockets-only AF_IUCV_FLAG_WIN without testing the transport, so on a classic z/VM socket iucv_send_ctrl() sizes the skb through a NULL iucv->hs_dev. SO_MSGLIMIT accepts 1, so msglimit / 2 is zero and one recvmsg() on its own socket is enough for an unprivileged process to take a spurious disconnect. It also calls iucv_send_ctrl() under spin_lock_bh(&message_q.lock), which allocates GFP_KERNEL inside a section the code treats as atomic. Sending outside that lock lets two recvmsg() reach afiucv_hs_send() at once, where msg_recv is sampled for the advertised window and subtracted after dev_queue_xmit() -- and sendmsg reaches that counter under lock_sock() while recvmsg holds no socket lock, so both can subtract the same value, the counter goes negative and the credit reaches the peer twice. Test the transport, claim the credit with atomic_xchg() after the last error exit and hand it back if the transmit fails, and send once the lock is dropped.
Title net/iucv: fix the recvmsg window update
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 Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-28T10:34:46.398Z

Reserved: 2026-09-25T10:25:14.394Z

Link: CVE-2026-99133

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-28T11:17:33.147

Modified: 2026-10-28T11:17:33.147

Link: CVE-2026-99133

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-28T14:15:18Z

Weaknesses