CVE-2026-81003
WysokieCVSS 8.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 21 - wyżej niż 21% wszystkich znanych CVE
Streszczenie
W jądrze Linux w funkcji afiucv_hs_rcv() (net/iucv) gniazdo AF_IUCV było wybierane wyłącznie na podstawie czterech pól nazw w nagłówku transportowym, bez sprawdzania urządzenia sieciowego, z którego ramka przyszła. Umożliwiało to dostarczenie ramki z dowolnego netdev do gniazda AF_IUCV, w tym z urządzenia w innej przestrzeni nazw. Poprawka pomija gniazda, których hs_dev nie odpowiada urządzeniu wejściowemu.
Ocena ryzyka
Może prowadzić do wyczerpania kolejki accept (DoS), wstrzyknięcia danych do istniejących gniazd, fałszowania tożsamości peera, zrywania ustanowionych połączeń oraz zaśmiecania sieci IQD. Nieuprzywilejowany proces z CAP_NET_RAW w swojej przestrzeni nazw mógł wysłać surową ramkę ETH_P_AF_IUCV i dopasować ją do gniazd w init_net.
Rekomendacja
Zaktualizować jądro Linux do wersji zawierającej poprawkę filtrującą ramki w afiucv_hs_rcv() po urządzeniu wejściowym. Do czasu aktualizacji ograniczyć dostęp do sieci HiperSockets/IQD oraz możliwość wysyłania surowych ramek ETH_P_AF_IUCV.
Inne podatności w Linux kernel
Zobacz wszystkie- CVE-2026-98162Nieznane
W jądrze Linux w funkcji smb2_tree_connect() serwera SMB (ksmbd) występuje wyciek połączenia drzewa (tree connection). Gdy funkcja ksmbd_iov_pin_rsp() zakończy się niepowodzeniem, nowo utworzone połączenie drzewa nie jest rozłączane, co prowadzi do wycieku zasobów.
- CVE-2026-98160Nieznane
W jądrze Linux w sterowniku staging rtl8723bs funkcja rtw_sdio_if1_init() zwalnia bufor padapter->HalData za pomocą kfree(), mimo że został on przydzielony przez vzalloc(). Użycie kfree() do zwolnienia bufora opartego na vmalloc może prowadzić do uszkodzenia pamięci.
- CVE-2026-100079Nieznane
W jądrze Linux w podsystemie USB Type-C (ucsi) funkcja ucsi_register() tworzy wpisy debugfs dla instancji, ale ucsi_unregister() nie usuwa ich aż do wywołania ucsi_destroy(). Sterowniki takie jak ucsi_glink, które wyrejestrowują i rejestrują tę samą instancję UCSI przy restarcie remoteproc, próbują utworzyć już istniejący katalog debugfs.
- CVE-2026-100078Nieznane
W jądrze Linux w sterowniku wifi iwlwifi (mei) funkcja iwl_mei_write_cyclic_buf() otrzymuje nieprawidłowy pierwszy argument — zamiast cldev przekazywany jest wskaźnik q_head. Błąd został naprawiony.
- CVE-2026-100077Nieznane
W jądrze Linux w sterowniku drm/msm podczas odzyskiwania GPU nie jest bezpieczne wycofywanie zawieszonego zgłoszenia (submit) przed zakończeniem odzyskiwania GPU. Wycofanie zgłoszenia powoduje zwolnienie buforów BO, do których GPU może wciąż aktywnie uzyskiwać dostęp, co prowadzi do błędów strony (pagefaults).
- CVE-2026-100074Nieznane
W jądrze Linux naprawiono błąd w podsystemie BPF, w którym pole BPF_REFCOUNT nie było oznaczane jako unikalne, mimo że powinno być. Poprawka usuwa to przeoczenie.
- CVE-2026-100073Nieznane
W jądrze Linux naprawiono błąd w systemie plików ext4 dotyczący przepełnienia transakcji podczas zapisu zwrotnego. Poprzednia poprawka zbyt agresywnie zmniejszała liczbę rezerwowanych kredytów transakcyjnych, co w niektórych przypadkach prowadziło do niewystarczającej rezerwy. Poprawka używa funkcji ext4_meta_trans_blocks() do prawidłowego oszacowania górnej granicy.
- CVE-2026-100072Nieznane
W jądrze Linux naprawiono problem w podsystemie ACPI, gdzie użycie acpi_get_first_physical_node() w acpi_platform_fill_resource() i acpi_create_platform_device() było niebezpieczne, ponieważ zwrócone urządzenie mogło zostać zwolnione w dowolnym momencie. Poprawka zastępuje tę funkcję funkcją acpi_bus_get_primary_device() i dostosowuje kod, aby wywoływać ją tylko raz.
- CVE-2026-100071Nieznane
W jądrze Linux naprawiono wyciek pamięci w module HSR (High-availability Seamless Redundancy). Gdy funkcja hsr_dev_finalize() zawiedzie po zarejestrowaniu procedury obsługi RX, dynamiczne węzły nauczone w tym oknie nie są zwalniane. Poprawka zwalnia obie bazy danych dynamicznych w ścieżce obsługi błędów.
- CVE-2026-100070Nieznane
W jądrze Linux naprawiono błąd w module netfilter nf_nat_sip, gdzie przesunięcie (offset) nie było korygowane, gdy NAT zmniejszał pakiet. Jeśli map_addr() zmienia długość pakietu, coff może wskazywać nieprawidłową pozycję, co może prowadzić do pominięcia kolejnych nagłówków Contact i wycieku wewnętrznych adresów sieciowych.
Oryginalny opis (angielski, źródło NVD)
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.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

