Severity by source
AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
Adjacent network vector requires shared HiperSockets segment; no auth needed; integrity and availability both high due to data injection and connection teardown; no confidentiality impact.
Primary rating from Vendor (Linux).
CVSS VectorVendor: Linux
Lifecycle Timeline
6DescriptionCVE.org
In the Linux kernel, the following vulnerability has been resolved:
net/iucv: filter frames in afiucv_hs_rcv() by ingress device
afiucv_hs_rcv() selects a socket from iucv_sk_list by matching four 8-byte name fields in the transport header alone. No check is made against the net_device the frame arrived on.
This can cause a frame arriving on any netdev to be delivered to an AF_IUCV socket. Three problems follow.
First, a frame arriving over HiperSockets can be delivered to a socket bound to the classic z/VM IUCV transport, which has iucv->hs_dev == NULL. iucv_sock_bind() takes the classic path whenever the requested userid matches iucv_userid, even on a guest that also has a HiperSockets device carrying the same identifier. The child socket created by afiucv_hs_callback_syn() for such a match inherits hs_dev = NULL and transport = AF_IUCV_TRANS_HIPER, so the first send() on it returns -ENODEV. The socket delivered to accept() is unusable.
Second, a frame arriving on one netdev can be delivered to a socket bound to a different IQD device. Which can lead to
- Accept-queue exhaustion (DoS)
- Attacker-controlled peer identity in the child socket
- Data injection into existing sockets
- Fabric noise on the IQD fabric, where bogus replies are sent
- killing established connections
Third, all AF_IUCV sockets live in init_net, as iucv_sock_alloc() calls sk_alloc(&init_net, ...). But even frames arriving on netdev devices in a namespace can be delivered to an IUCV socket. So a process in an unprivileged user and network namespace holding only the CAP_NET_RAW capability valid within that namespace can send a raw ETH_P_AF_IUCV frame on its own lo device and have it matched against init_net sockets.
Fix all three by skipping any socket whose hs_dev does not match the ingress device. A classic z/VM IUCV socket has hs_dev NULL; the ingress dev is never NULL, so classic sockets are skipped automatically. An unbound HIPER socket also has hs_dev NULL and is skipped. A bound HIPER socket is only reachable from the exact IQD device it was bound to. Because hs_dev is always a device in init_net (iucv_sock_bind() scans for_each_netdev_rcu(&init_net, ...) exclusively), a frame whose ingress device belongs to another namespace never matches any socket.
Note that AF_IUCV over HiperSockets provides no per-connection authentication: no sequence numbers, no TLS, no nonce. The four name fields identifying a connection are exchanged in plaintext on the shared HiperSockets segment (VCHID). Any host on the same HiperSockets segment could spoof any frame type against an existing connection. That is a protocol-level property unchanged by this patch. The fix reduces the attack surface to peers present on the same HiperSockets segment.
AnalysisAI
Missing ingress-device validation in the Linux kernel's AF_IUCV HiperSockets receive path allows adjacent-network attackers on the same HiperSockets segment (VCHID) to deliver crafted ETH_P_AF_IUCV frames to sockets bound on different IQD devices, enabling accept-queue exhaustion, data injection into established connections, and attacker-controlled peer identity on newly accepted connections. A secondary local vector also exists: a process holding CAP_NET_RAW only within an unprivileged network namespace can send raw ETH_P_AF_IUCV frames over its loopback interface and have them matched against init_net sockets, bypassing namespace isolation. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | Primary vector (AV:A/PR:N): The target system must be an IBM Z platform running Linux with AF_IUCV over HiperSockets (IQD). … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | Real-world risk is moderate and tightly scoped to IBM Z mainframe environments using HiperSockets. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | Full exploit scenario with step-by-step reproduction available after sign-in. |
| Remediation | Upgrade to Linux kernel 6.12.109, 6.18.50, 7.2.4, or 7.3-rc1, which introduce the hs_dev equality check in afiucv_hs_rcv(). … Detailed patch versions, workarounds, and compensating controls in full report. |
Recommended ActionAI
Within 24 hours: Identify all systems running vulnerable Linux kernel versions (below 6.12.109, 6.18.50, 7.2.4, or pre-7.3-rc1) with AF_IUCV/HiperSockets enabled, focusing on IBM POWER and zSeries infrastructure. …
Sign in for detailed remediation steps and compensating controls.
Threat intelligence, references, and detailed analysis are available after sign-in.
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-76326
GHSA-5r93-38xq-57mx