CVE-2026-31786
WysokieStreszczenie
W jądrze systemu Linux zidentyfikowano podatność typu buffer overflow w pliku drivers/xen/sys-hypervisor.c. Problem wynika z tego, że identyfikator kompilacji zwracany przez HYPERVISOR_xen_version(XENVER_build_id) nie jest zakończony znakiem NUL, co prowadzi do nadpisania pamięci.
Ocena ryzyka
Wykorzystanie tej podatności może prowadzić do nieautoryzowanego dostępu do pamięci, co stwarza ryzyko destabilizacji systemu lub wykonania złośliwego kodu. Organizacje powinny być świadome potencjalnych zagrożeń związanych z bezpieczeństwem ich systemów wirtualizacyjnych.
Rekomendacja
Zaleca się aktualizację jądra systemu Linux do najnowszej wersji, która zawiera poprawki dla tej podatności. Dodatkowo, warto rozważyć użycie funkcji memcpy zamiast sprintf w kodzie, aby uniknąć podobnych problemów w przyszłości.
Inne podatności w Linux kernel
Zobacz wszystkie- CVE-2026-98432Nieznane
W jądrze Linux występuje podatność use-after-free w obsłudze opcji IPv4 dla gniazd TCP. Opcje ireq_opt są zwalniane zwykłym kfree(), mimo że inne wątki mogą ich jeszcze używać w ramach RCU (np. przy budowaniu SYNACK lub tworzeniu gniazda potomnego), co prowadzi do użycia zwolnionej pamięci w ip_options_build(). Problem dotyczy również migracji gniazd żądań (tcp_migrate_req).
- CVE-2026-98431Nieznane
W jądrze Linux występuje zakleszczenie (deadlock) typu ABBA pomiędzy blokadami mmap_lock i disassociation_lock w podsystemie RDMA/uverbs. Wątek wykonujący mmap/fork zakłada blokady w kolejności mmap_lock → disassociation_lock, natomiast wątek wykonujący uverbs_user_mmap_disassociate() w kolejności odwrotnej, co prowadzi do możliwego zakleszczenia. Problem został rozwiązany poprzez usunięcie disassociation_lock i użycie istniejącej blokady hw_destroy_rwsem.
- CVE-2026-98430Nieznane
W jądrze Linux w sterowniku RDMA/efa procedura obsługi przerwania zarządzającego uzyskuje dostęp zarówno do kolejki ukończeń administracyjnych, jak i do kolejki zdarzeń asynchronicznych. Sterownik rejestrował przerwanie przed utworzeniem tych kolejek i niszczył je przed zwolnieniem przerwania, przez co czas życia procedury obsługi nie był ograniczony przez zasoby, do których się odwołuje. Poprawka inicjalizuje kolejki z zamaskowanymi przerwaniami, rejestruje przerwanie, a następnie przełącza w tryb przerwań, a przy usuwaniu resetuje urządzenie i zwalnia przerwanie przed zniszczeniem kolejek.
- CVE-2026-98429Nieznane
W jądrze Linux w sterowniku RDMA/efa procedura obsługi przerwania ukończeń uzyskuje dostęp do stanu EQ i bufora DMA. Jej przerwanie było rejestrowane przed zainicjalizowaniem tego stanu, a demontaż zwalniał bufor przed free_irq() synchronizującym procedurę obsługi. Poprawka inicjalizuje EQ bez uzbrajania go, rejestruje przerwanie, a następnie je uzbraja, a przy demontażu zwalnia przerwanie przed zniszczeniem EQ.
- CVE-2026-98428Nieznane
W jądrze Linux sterownik USB 6fire używa URB osadzonych w różnych strukturach dla PCM, MIDI i komunikacji, co jest wadliwą implementacją; ponieważ URB jest zarządzany przez licznik referencji, może to prowadzić do użycia zwolnionej pamięci (UAF), gdy URB jest zwalniany asynchronicznie. Poprawka konwertuje te osadzone URB na alokowane przez usb_alloc_urb(), zamieniając każde osadzone struct urb na wskaźnik i aktualizując wywołania; zasoby są zwalniane w wspólnych destruktorach wywoływanych zarówno przy błędzie inicjalizacji, jak i przy odłączeniu.
- CVE-2026-98427Nieznane
W jądrze Linux w kodzie algorytmu CoDel (net/sched) pętla odrzucania w codel_dequeue() mogła nie przesuwać się do przodu przy bardzo małych wartościach interwału, co prowadziło do opróżnienia całego backlogu pod blokadą qdisc w jednym wywołaniu. Nieuprzywilejowany użytkownik mógł w ten sposób wywołać soft lockup. Poprawka ogranicza krok pętli do co najmniej 1 ticka oraz maksymalnie 256 odrzuceń na wywołanie codel_dequeue().
- CVE-2026-98426Nieznane
W jądrze Linux w sterowniku wifi mwifiex funkcja mwifiex_pcie_request_irq() rejestruje każdy wektor MSI-X z dev_id dla danego indeksu (&card->msix_ctx[i]). Przy błędzie request_irq() pętla czyszcząca "for (j = 0; j < i; j++)" zwalnia msix_entries[j].vector, ale przekazuje &card->msix_ctx[i] z nieudanego indeksu jako dev_id. Ponieważ free_irq() dopasowuje po (irq, dev_id), nie znajduje akcji zarejestrowanej z &card->msix_ctx[j]: już zarejestrowane przerwanie j nie jest zwalniane (wyciek), a free_irq() ostrzega o zwalnianiu nieistniejącego przerwania. Poprawka używa &card->msix_ctx[j].
- CVE-2026-98425Nieznane
W jądrze Linux funkcja ieee80211_request_ibss_scan() w module mac80211 wywołuje ostrzeżenie, gdy regdomain nie pozostawia żadnego dozwolonego kanału do skanowania. Sytuacja ta może wystąpić, ponieważ regdomain może się zmienić podczas pracy interfejsu IBSS, który może działać jeszcze przez 60-sekundowy okres karencji przed wyłączeniem. Poprawka usuwa to ostrzeżenie.
- CVE-2026-98424Nieznane
W jądrze Linux funkcja cfg80211_switch_netns() w module cfg80211 przenosi interfejsy, a następnie przenosi samo wiphy, ustawiając jego przestrzeń nazw sieci i zmieniając nazwę, co powoduje przeniesienie w sysfs. Zmiana nazwy może się nie powieść (tylko przy błędach alokacji), pozostawiając niespójny stan i wywołując ostrzeżenie. Poprawka cofa przeniesienie i pozwala operacji zakończyć się niepowodzeniem, a jeśli cofnięcie się nie powiedzie, wywołuje WARN.
- CVE-2026-98423Nieznane
W jądrze Linux moduł mac80211_hwsim sprawdza pole ->started dla ramek pochodzących z wmediumd, ale radio może zostać zatrzymane po sprawdzeniu, a przed dostarczeniem ramki, co powoduje wywołanie WARN_ON(!local->started) w mac80211. Poprawka rozszerza zakres blokady mutex i synchronizuje się z nią przy zatrzymywaniu radia, a także usuwa zbędny komunikat błędu.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: Buffer overflow in drivers/xen/sys-hypervisor.c The build id returned by HYPERVISOR_xen_version(XENVER_build_id) is neither NUL terminated nor a string. The first causes a buffer overflow as sprintf in buildid_show will read and copy till it finds a NUL. 00000000 f4 91 51 f4 dd 38 9e 9d 65 47 52 eb 10 71 db 50 |..Q..8..eGR..q.P| 00000010 b9 a8 01 42 6f 2e 32 |...Bo.2| 00000017 So use a memcpy instead of sprintf to have the correct value: 00000000 f4 91 51 f4 dd 00 9e 9d 65 47 52 eb 10 71 db 50 |..Q.....eGR..q.P| 00000010 b9 a8 01 42 |...B| 00000014 (the above have a hack to embed a zero inside and check it's returned correctly). This is XSA-485 / CVE-2026-31786
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

