{"id":"CVE-2026-99133","title":"net/iucv: fix the recvmsg window update","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet/iucv: fix the recvmsg window update\n\niucv_sock_recvmsg() sends the HiperSockets-only AF_IUCV_FLAG_WIN without\ntesting the transport, so on a classic z/VM socket iuc…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= 3881ac441f642d56503818123446f7298442236b < 8f2efa742f4cfe7dd756154f8bc07350dbe3ec92","Linux >= 3881ac441f642d56503818123446f7298442236b < fe7393a627db2d093e8c0cae69d619b30fefae5f","Linux >= 3881ac441f642d56503818123446f7298442236b < fa5acd038ea657ad5033713d6916214cbd349151","Linux 3.2"],"published":"2026-10-28","updated":"2026-10-28","sourceUpdated":"2026-10-28T10:34:46.398Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-99133","references":[{"url":"https://git.kernel.org/stable/c/8f2efa742f4cfe7dd756154f8bc07350dbe3ec92"},{"url":"https://git.kernel.org/stable/c/fe7393a627db2d093e8c0cae69d619b30fefae5f"},{"url":"https://git.kernel.org/stable/c/fa5acd038ea657ad5033713d6916214cbd349151"}],"tags":["cve.org"],"ingestedAt":"2026-10-28T11:09:40.430Z","slug":"CVE-2026-99133","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nnet/iucv: fix the recvmsg window update\n\niucv_sock_recvmsg() sends the HiperSockets-only AF_IUCV_FLAG_WIN without\ntesting the transport, so on a classic z/VM socket iucv_send_ctrl() sizes\nthe skb through a NULL iucv->hs_dev. SO_MSGLIMIT accepts 1, so msglimit / 2\nis zero and one recvmsg() on its own socket is enough for an unprivileged\nprocess to take a spurious disconnect.\n\nIt also calls iucv_send_ctrl() under spin_lock_bh(&message_q.lock), which\nallocates GFP_KERNEL inside a section the code treats as atomic. Sending\noutside that lock lets two recvmsg() reach afiucv_hs_send() at once, where\nmsg_recv is sampled for the advertised window and subtracted after\ndev_queue_xmit() -- and sendmsg reaches that counter under lock_sock()\nwhile recvmsg holds no socket lock, so both can subtract the same value,\nthe counter goes negative and the credit reaches the peer twice.\n\nTest the transport, claim the credit with atomic_xchg() after the last\nerror exit and hand it back if the transmit fails, and send once the lock\nis dropped.\n\n## Affected\n\n- `Linux >= 3881ac441f642d56503818123446f7298442236b < 8f2efa742f4cfe7dd756154f8bc07350dbe3ec92`\n- `Linux >= 3881ac441f642d56503818123446f7298442236b < fe7393a627db2d093e8c0cae69d619b30fefae5f`\n- `Linux >= 3881ac441f642d56503818123446f7298442236b < fa5acd038ea657ad5033713d6916214cbd349151`\n- `Linux 3.2`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}