Katalog podatności CVE
Przetłumaczone opisy podatności z bazy NVD NIST - w języku polskim
Przeglądaj podatności według pakietuKatalog CISA KEV zaktualizowany: (v2026.11.04)
Cotygodniowy digest CVE
Jeden mail w tygodniu z nowo opublikowanymi podatnościami, o których warto wiedzieć. Bez zakładania konta.
Digest dotyczy ogólnie nowych podatności, nie Twoich serwerów. Jeśli chcesz wiedzieć, które z nich faktycznie działają w Twojej infrastrukturze, tym zajmuje się Secvalis : skanuje Twoje maszyny i zgłasza wyłącznie to, co ich dotyczy.
W jądrze Linux w sterowniku iommu/amd funkcja iommu_init_ga_log() bezwarunkowo przypisuje wskaźniki ga_log i ga_log_tail, przez co każde wznowienie systemu zastępuje wskaźniki z czasu rozruchu i wycieka obie alokacje. Funkcja używa też GFP_KERNEL w callbacku wznowienia syscore, gdzie przerwania są wyłączone, a procesory inne niż rozruchowy są offline. Poprawka zwraca wcześnie, jeśli oba bufory są już zaalokowane, i czyści wskaźniki w free_ga_log().
W jądrze Linux w sterowniku iommu/amd funkcja amd_iommu_pdom_id_alloc() zwraca int (ID domeny lub ujemny errno), ale amd_iommu_alloc_domain_nested() przypisuje wynik do pola u32 gdom_info->hdom_id, tracąc znak. W efekcie -ENOSPC staje się 0xffffffe4 i test "<= 0" nigdy nie zadziała, więc domena zagnieżdżona jest tworzona z nieprzydzielonym ID. Poprawka przechowuje wartość w int, testuje ją i zapisuje dopiero po walidacji.
W jądrze Linux w sterowniku hwmon ltc4282 funkcja ltc428_clk_provider_setup() nie inicjalizuje wszystkich pól struktury clk_init_data, w szczególności init.num_parents pozostaje niezainicjalizowane, mimo że zakłada się NULL. Przy włączonym CONFIG_INIT_STACK_ALL_PATTERN lub CONFIG_INIT_STACK_NONE może to prowadzić do awarii. Poprawka zapewnia pełną inicjalizację wszystkich pól.
W jądrze Linux w funkcji pec_store() pobierana jest blokada guard(mutex)(&hwdev->lock). Jeśli operacja zapisu do układu zwróci błąd inny niż -EOPNOTSUPP, kod przechodzi do etykiety put, która wywołuje put_device(hdev); jeśli to zwolni ostatnie odwołanie, urządzenie zostaje zwolnione, a następnie funkcja sprzątająca guard próbuje odblokować zwolniony mutex (UAF). Poprawka używa scoped_guard() zamiast guard().
W jądrze Linux w module netfilter nfnetlink_log występuje błąd związany z równoczesnym niszczeniem instancji. Odłączenie instancji od tablicy hash może nastąpić przy dowolnym liczniku referencji, a nie tylko przy przejściu z 1 na 0. Niekooperatywny proces w przestrzeni użytkownika może wymusić sytuację, w której kolejka jest w trakcie niszczenia przez zdarzenie netlink, podczas gdy inne gniazdo z tym samym portid przetwarza żądanie UNBIND, co prowadzi do ponownego odłączenia instancji i błędu general protection fault.
W jądrze Linux w obsłudze pierścienia typu packed dla virtio (virtio_ring) występuje błąd, który po nieudanym dodaniu łańcucha deskryptorów pozostawia w deskryptorach nieaktualne znaczniki AVAIL i USED. Deskryptory te mogą zostać błędnie zinterpretowane przez urządzenie jako kolejne polecenie, co prowadzi do zablokowania kolejki. Problem ujawnia się najczęściej w konfiguracjach swiotlb przy presji na pamięć, gdy vring_map_one_sg() zawodzi przy większych operacjach I/O.
W jądrze Linux występuje podatność use-after-free w funkcji unregister_virtio_device(). Po wywołaniu device_unregister() pamięć obiektu virtio_device może zostać zwolniona, a następnie funkcja virtio_debug_device_exit() odczytuje z niej pole debugfs_dir. Problem dotyczy transportów virtio_mmio, virtio_vdpa, virtio_uml, mlxbf-tmfifo oraz virtio_ccw.
W jądrze Linux w module virtio_console występuje błąd polegający na zwalnianiu buforów control-out podczas usuwania urządzenia. Funkcja __send_control_msg() publikuje &portdev->cpkt jako cookie kolejki control-out, a remove_vqs() przekazuje pozostałe cookie do free_buf(), która traktuje je jako struct port_buffer i odczytuje sgpages. Jeśli komunikat kontrolny wciąż znajduje się w c_ovq w momencie odłączenia urządzenia, free_buf() odczytuje poza obiekt ports_device, co KASAN zgłasza jako slab-out-of-bounds.
W jądrze Linux w module vhost/vdpa występuje błąd polegający na akceptowaniu rozmiaru kolejki VRING_NUM większego niż maksymalny rozmiar obsługiwany przez urządzenie. vhost_vring_set_num() przyjmuje dowolny niezerowy rozmiar kolejki będący potęgą dwójki mieszczący się w 16 bitach, a vhost-vdpa przekazuje tę wartość do set_vq_num() bez porównania z get_vq_num_max(). Proces z dostępem do /dev/vhost-vdpa-* może skonfigurować kolejkę większą niż reklamowana przez urządzenie, co prowadzi do odczytu poza granicami w ścieżce vringh IOTLB (KASAN zgłasza 16-bajtowy out-of-bounds read).
W jądrze Linux w module vhost-vdpa występuje błąd polegający na instalowaniu wartości błędu z eventfd_ctx_fdget() w polu config_ctx. Funkcja vhost_vdpa_set_config_call() zamienia wartość zwracaną przez eventfd_ctx_fdget() na v->config_ctx przed jej sprawdzeniem, więc w przypadku błędu pole przez chwilę przechowuje ERR_PTR. vhost_vdpa_config_cb() sprawdza tylko NULL, więc przerwanie konfiguracji dostarczone w tym oknie przekazuje ERR_PTR do eventfd_signal(). Dodatkowo odrzucony fd może zniszczyć działające przerwanie konfiguracji.
W jądrze Linux występuje luka use-after-free w mechanizmie vhost-vdpa. Funkcja vhost_vdpa_config_cb() odczytuje wskaźnik v->config_ctx bez blokady i bez pobrania referencji, podczas gdy równoległe wywołanie VHOST_VDPA_SET_CONFIG_CALL zwalnia stary kontekst eventfd przez eventfd_ctx_put(), co prowadzi do użycia zwolnionej pamięci. Problem jest osiągalny z przestrzeni użytkownika przy użyciu VDUSE (dostęp do /dev/vduse, domyślnie root).
W jądrze Linux w module vdpa_sim_blk występuje błąd polegający na akceptowaniu początkowych sektorów poza zakresem. vdpasim_blk_check_range() rejestruje nieprawidłowy sektor początkowy, ale kontynuuje walidację żądania; kolejne odejmowanie pojemności bez znaku może spowodować niedomiar i pozwolić nieprawidłowemu przesunięciu bufora dotrzeć do ścieżki danych. Prowadzi to do zapisu poza granicami (VIRTIO_BLK_T_OUT, VIRTIO_BLK_T_WRITE_ZEROES) lub odczytu poza granicami (VIRTIO_BLK_T_IN).
W jądrze Linux w module vdpa_sim_net występuje błąd polegający na braku sprawdzenia wyniku pobrania TX przed kopiowaniem RX. vringh_iov_pull_iotlb() zwraca liczbę bajtów ze znakiem; nieudane pobranie TX jest obecnie dodawane do licznika bajtów bez znaku, a następnie przekazywane jako długość size_t do receive_filter() i vringh_iov_push_iotlb(). Ujemny błąd może więc stać się dużą długością w ścieżce RX.
W jądrze Linux w module vduse występuje błąd polegający na braku walidacji wyrównania kolejki wirtualnej. vduse_validate_config() sprawdza tylko górną granicę vq_align, więc nieprawidłowe wartości mogą dotrzeć do vring_create_virtqueue_map(). Pomocniki split-ring używają align - 1 jako maski bitowej, więc wyrównanie musi być niezerową potęgą dwójki; wartość zero powoduje, że vring_size() pomija deskryptor i pierścień dostępny, a vring_init() pozostawia wskaźnik pierścienia użytego jako NULL. Otwarcie urządzenia virtio-net utworzonego z vq_align=0 wywołuje null-ptr-deref w virtqueue_kick_prepare_split().
W jądrze Linux w podsystemie vhost występuje problem z unieważnianiem dostępu do vringów przy zmianach IOTLB. Gdy zmienia się flaga VIRTIO_F_ACCESS_PLATFORM, buforowane wskaźniki vringów i metadane IOTLB są interpretowane w innej przestrzeni adresowej, co może prowadzić do używania nieaktualnych mapowań. Wprowadzono wspólny helper vhost_clear_device_iotlb(), który serializuje przejście z workerami i zapobiega mieszaniu przestrzeni adresowych.
W jądrze Linux w sterowniku virtio_input występuje błąd w obsłudze błędów rejestracji urządzenia wejściowego. Funkcja probe oznacza urządzenie jako DRIVER_OK przed wywołaniem input_register_device(); jeśli rejestracja się nie powiedzie, ścieżka błędu czyści vi->ready i wywołuje del_vqs(), podczas gdy urządzenie jest nadal aktywne, co może prowadzić do DMA do już zniszczonych kolejek. Poprawka polega na wywołaniu virtio_reset_device() przed usunięciem virtqueues.
W jądrze Linux w sterowniku virtio_input występuje problem z kolejnością operacji przy usuwaniu urządzenia. Funkcja virtinput_remove() wyrejestrowuje urządzenie wejściowe przed zresetowaniem urządzenia virtio, co pozwala callbackowi na użycie vi->idev po jego zwolnieniu. Poprawka polega na wcześniejszym zresetowaniu urządzenia i ponownym sprawdzeniu vi->ready po zdobyciu blokady.
W jądrze Linux w podsystemie AF_UNIX występuje błąd w funkcji manage_oob(), która nie aktualizuje znacznika ostatniego skb. W wyniku tego blokujące wywołanie recv(MSG_PEEK) może powodować zajęcie procesora poprzez aktywne oczekiwanie na nowy skb. Poprawka polega na aktualizacji znacznika @last w manage_oob().
W jądrze Linux występuje przepełnienie pola długości UDP podczas wysyłania dużych pakietów przez gniazda UDP IPv6, gdy opcja IPV6_MTU_DISCOVER jest ustawiona na IPV6_PMTUDISC_DO lub IPV6_PMTUDISC_PROBE, a interfejs sieciowy ma nietypowo duże MTU. Wartość cork->base.fragsize nie jest ograniczana do IP6_MAX_MTU, co prowadzi do przekroczenia 16-bitowego pola długości UDP i wywołania ostrzeżenia w udp_set_len_short. Problem dotyczy wyłącznie gniazd UDP i został naprawiony poprzez ograniczenie fragsize do IP6_MAX_MTU.
W jądrze Linux w module vduse występuje błąd w obsłudze compat ioctl. Handler compat obsługuje VDUSE_IOTLB_GET_FD i VDUSE_VQ_GET_INFO, ale następnie wywołuje natywny handler, który zwraca -ENOIOCTLCMD z powodu różnych rozmiarów komend. Dla GET_FD nadpisuje to wartość zwracaną przez receive_fd() po zainstalowaniu deskryptora, wyciekając jeden fd na wywołanie. Poprawka polega na bezpośrednim zwracaniu wyników compat.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

