Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

redhat логотип

CVE-2026-81003

Опубликовано: 11 сент. 2026
Источник: redhat
CVSS3: 7

Описание

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.

    A flaw was found in the Linux kernel's AF_IUCV (Advanced Program-to-Program Communication over IUCV) network protocol implementation. The afiucv_hs_rcv() function, responsible for receiving frames, does not properly filter incoming frames based on the ingress network device. This oversight allows a local attacker with specific network capabilities or a host on the same HiperSockets segment to send specially crafted frames. Successful exploitation can lead to a Denial of Service (DoS) by exhausting the accept-queue, injecting data into existing sockets, and disrupting established connections.

Отчет

A flaw rated IMPORTANT by Red Hat Product Security was found in the Linux kernel's AF_IUCV protocol implementation, used for the z/VM IUCV and HiperSockets transports on the s390x (IBM Z) architecture. The afiucv_hs_rcv() receive path selected a target socket from the global socket list by matching only the four 8-byte name fields in the frame's transport header, without checking the network device the frame arrived on. As a result, a frame received on any network device could be delivered to an AF_IUCV socket bound to a different device or to the classic z/VM IUCV transport. A local attacker holding only the CAP_NET_RAW capability inside an unprivileged user and network namespace could send a raw ETH_P_AF_IUCV frame on its own loopback device and have it matched against sockets in the initial network namespace; similarly, a host on the same shared HiperSockets segment could direct frames at sockets bound to a different HiperSockets device. Successful exploitation could exhaust a listening socket's accept queue (denial of service), inject data into existing AF_IUCV connections, control the peer identity of accepted child sockets, and disrupt or kill established connections. Multiple Red Hat Enterprise Linux kernel and kernel-rt update streams and Red Hat In-Vehicle OS kernel streams are affected, and fixes are being pursued in the respective product streams; the kernel-ivos-qualcomm component of Red Hat In-Vehicle OS is not affected because the vulnerable code is not present in that kernel. The Red Hat severity of IMPORTANT (CVSS 3.1 score 7.0, AV:L/AC:H/PR:L) is lower than the upstream CVE.org rating of 8.1 (AV:A/AC:L/PR:N): Red Hat assessed the dominant exploitation path as local, requiring privileges and high attack complexity, whereas the upstream rating emphasizes the adjacent-network HiperSockets vector requiring no privileges. Note that AF_IUCV over HiperSockets provides no per-connection authentication, so the fix reduces the attack surface to peers present on the same HiperSockets segment but does not change that protocol-level property.

Меры по смягчению последствий

Mitigation for this issue is either not available or the currently available options do not meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base, or stability.

Затронутые пакеты

ПлатформаПакетСостояниеРекомендацияРелиз
Red Hat Enterprise Linux 10kernelAffected
Red Hat Enterprise Linux 6kernelUnder investigation
Red Hat Enterprise Linux 7kernelAffected
Red Hat Enterprise Linux 7kernel-rtAffected
Red Hat Enterprise Linux 8kernelAffected
Red Hat Enterprise Linux 8kernel-rtAffected
Red Hat Enterprise Linux 9kernel-rtAffected
Red Hat OpenShift Container Platform 4openshift/ose-rhel-coreos-8Affected
Red Hat OpenShift Container Platform 4openshift/ose-rhel-coreos-9Affected
Red Hat Enterprise Linux 9kernelFixedRHSA-2026:8315614.10.2026

Показывать по

Дополнительная информация

Статус:

Important
Дефект:
CWE-940
https://bugzilla.redhat.com/show_bug.cgi?id=2532515kernel: net/iucv: filter frames in afiucv_hs_rcv() by ingress device

7 High

CVSS3

Связанные уязвимости

CVSS3: 8.1
ubuntu
около 2 месяцев назад

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 b...

CVSS3: 8.1
nvd
около 2 месяцев назад

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

CVSS3: 8.1
debian
около 2 месяцев назад

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

CVSS3: 8.1
github
около 2 месяцев назад

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 ...

rocky
11 дней назад

Important: kernel security update

7 High

CVSS3

Уязвимость CVE-2026-81003