Podatności Linux kernel
5621 znanych podatności CVE w Linux kernel, przetłumaczonych i ocenionych.
- CVE-2024-47695Krytyczne
W jądrze Linuxa w podsystemie RDMA rtrs-clt wykryto błąd polegający na odwołaniu do pamięci poza zakresem w funkcji init_conns(). W pętli sprzątania po błędzie zmienna cid jest ustawiana na con_num, co prowadzi do dostępu poza tablicę.
- CVE-2024-47685Krytyczne
W jądrze Linuxa naprawiono podatność w funkcji nf_reject_ip6_tcphdr_put(), która mogła wysyłać nieprawidłowe dane w zarezerwowanych bitach TCP. Użycie skb_put_zero() pozwala na wyczyszczenie całego nagłówka TCP.
- CVE-2024-47678Krytyczne
W jądrze Linuxa zmieniono kolejność ograniczania szybkości dla komunikatów ICMP. Wcześniej najpierw sprawdzano globalny limit, a potem limit per destination; teraz najpierw sprawdzany jest limit per destination, a globalny limit jest sprawdzany i zużywany później. Zmiana ma na celu zapobieganie atakom przez kanały boczne.
- CVE-2024-47659Krytyczne
W jądrze Linuxa w module Smack wykryto podatność dotyczącą błędnego etykietowania pakietów TCP/IPv4 dla połączeń przychodzących. Etykieta nadawcy była odzwierciedlana w pakietach zwrotnych, zamiast etykiety odbiorcy, co prowadziło do nieautoryzowanego zapisu.
- CVE-2024-46865Krytyczne
W jądrze Linuxa naprawiono podatność związaną z inicjalizacją grc w module fou. W przypadku, gdy fou jest NULL, może dojść do użycia grc przed jego inicjalizacją.
- CVE-2024-46736Krytyczne
W kliencie SMB w jądrze Linuxa występuje podwójne zwolnienie referencji @cfile w funkcji smb2_rename_path(). Jeśli funkcja smb2_set_path_attr() zostanie wywołana z prawidłowym @cfile i zwróci -EINVAL, referencja @cfile została już zwolniona przez poprzednie wywołanie smb2_compound_op(), co prowadzi do podwójnego zwolnienia.
- CVE-2024-46717Krytyczne
W jądrze Linux w sterowniku mlx5e dla funkcji SHAMPO wykryto nieprawidłowe zwalnianie stron. W określonych warunkach (brak skb, header_size == 0, ostatni fragment strony nagłówka) zwalniana jest strona nagłówka SHAMPO, która nie powinna być zwolniona, co prowadzi do wielokrotnego zwalniania tych stron.
- CVE-2024-46697Krytyczne
W jądrze Linux w module nfsd występuje podatność polegająca na tym, że jeśli funkcja nfsd4_encode_fattr4 wykona skok do etykiety "goto out" przed sprawdzeniem etykiety bezpieczeństwa, to pole args.context pozostaje niezainicjalizowane na stosie, a następnie jest zwalniane. Poprawka inicjalizuje to pole na początku.
- CVE-2024-46696Krytyczne
W jądrze Linux w serwerze NFS (nfsd) występuje podatność na użycie po zwolnieniu (UAF) w funkcji nfsd4_cb_getattr_release. Po zwolnieniu referencji do delegacji, dostęp do pól w niej zawartych jest niebezpieczny. Poprawka przenosi to zwolnienie na koniec.
- CVE-2024-46695Krytyczne
W jądrze Linux w hooku inode_setsecctx dla SELinux i Smack występuje obejście kontroli uprawnień. Użytkownik root na kliencie NFS może zmieniać etykiety bezpieczeństwa plików na systemie plików NFS eksportowanym z włączonym root squashing. Poprawka zastępuje wywołanie __vfs_setxattr_noperm() przez __vfs_setxattr_locked(), co wymusza odpowiednie sprawdzenia uprawnień.
- CVE-2024-46690Krytyczne
W jądrze Linux w module nfsd występuje podatność w funkcji nfsd4_deleg_getattr_conflict, która niebezpiecznie dereferencjonuje wskaźnik flc_owner bez potwierdzenia, że fl_lmops jest oczekiwanym menedżerem. Poprawka przywraca zachowanie dla przypadku "!= &nfsd_lease_mng_ops" jak przed zmianą, bez odwoływania się do delegacji.
- CVE-2024-45030Krytyczne
W jądrze Linux w sterowniku igb (Intel Gigabit Ethernet) występuje problem z dużymi wartościami MAX_SKB_FRAGS, co prowadzi do uszkodzenia danych podczas transmisji (payload corruption). Przyczyną jest nieprawidłowe uwzględnienie rozmiaru wspólnych informacji (shared info) przy wyborze układu pierścienia, co powoduje próbę umieszczenia dwóch pakietów na jednej stronie 4K. Poprawka sprawdza, czy bufory 2K są niewystarczające.
- CVE-2024-45013Krytyczne
W jądrze Linuxa występuje podatność use-after-free w sterowniku NVMe. Problem polega na tym, że zatrzymywanie mechanizmu keep-alive nie zostało przeniesione do funkcji nvme_uninit_ctrl(), co może prowadzić do uruchomienia i pozostawienia w oczekiwaniu pracy keep-alive po nieudanym starcie kontrolera, a następnie do użycia po zwolnieniu pamięci podczas wyładowywania sterownika.
- CVE-2024-44998Krytyczne
W jądrze Linuxa w sterowniku ATM idt77252 wykryto użycie po zwolnieniu (use-after-free) w funkcji dequeue_rx(). Po wywołaniu vcc->push() nie można odwoływać się do skb, ponieważ został on zwolniony.
- CVE-2024-44985Krytyczne
W jądrze Linuxa w funkcji ip6_xmit() wykryto możliwość użycia po zwolnieniu (UAF). Jeśli skb_expand_head() zwróci NULL, skb oraz powiązane z nim dst/idev mogą zostać zwolnione, a dalszy dostęp może prowadzić do awarii.
- CVE-2024-44970Krytyczne
W jądrze Linux w sterowniku net/mlx5e (SHAMPO) występuje problem z nieprawidłowym usuwaniem elementu z listy połączonej kolejki roboczej (WQ). Gdy wszystkie stride'y w WQE zostaną zużyte, WQE jest usuwane z listy, ale możliwe jest otrzymanie CQE z 0 zużytymi stride'ami dla tego samego WQE, co prowadzi do podwójnego usunięcia i uszkodzenia listy. Poprawka akceptuje 0 rozmiarów zużytych stride'ów bez ponownego usuwania WQE.
- CVE-2024-43883Krytyczne
W jądrze Linux w sterowniku USB vhci-hcd występuje problem z utrzymywaniem referencji. W kilku miejscach sterownik przechowuje nieaktualne wskaźniki do referencji, które mogą być nadal używane. Poprawka zapewnia, że nowe referencje są uzyskiwane przed zwolnieniem starych, co zamyka lukę ZDI-CAN-22273.
- CVE-2024-43864Krytyczne
W jądrze Linux w sterowniku mlx5e podczas aktualizacji wpisu CT (connection tracking) może dojść do wycieku kontekstu modyfikacji nagłówka. Jeśli alokacja nowego modyfikatora nagłówka nie powiedzie się, wskaźnik do starego modyfikatora jest tracony, a próba zwolnienia błędnego wskaźnika może prowadzić do paniki systemu.
- CVE-2024-42285Krytyczne
W jądrze Linuxa, w podsystemie RDMA/iwcm, występuje podatność use-after-free związana z niszczeniem identyfikatorów CM. Funkcja iw_conn_req_handler() kojarzy nowy rdma_id_private z istniejącym iw_cm_id, a rdma_destroy_id() zwalnia oba. Poprawka zapewnia, że cm_work_handler() nie wywołuje use-after-free, czekając na zakończenie wszystkich oczekujących prac przed zwolnieniem rdma_id_private.
- CVE-2024-42284Krytyczne
W jądrze Linux w module TIPC funkcja tipc_udp_addr2str() nie zwraca wartości niezerowej w przypadku nieprawidłowego adresu UDP, co może prowadzić do przepełnienia bufora w tipc_media_addr_printf(). Poprawka polega na zwracaniu 1 dla nieprawidłowego adresu.
- CVE-2024-42232Krytyczne
W jądrze Linuxa w bibliotece libceph wykryto wyścig między delayed_work() a ceph_monc_stop(). Obsługa opóźnionej pracy w ceph_monc_stop() jest podatna na wyścigi z mon_fault() i finish_hunting(), które mogą ponownie zaplanować opóźnioną pracę po jej anulowaniu, co może prowadzić do użycia po zwolnieniu (use-after-free) na strukturze monc i powiązanych obiektach.
- CVE-2024-42108Krytyczne
W jądrze Linuxa w sterowniku sieciowym rswitch wykryto użycie po zwolnieniu (use-after-free) w funkcji rswitch_poll(). Błąd polega na tym, że wskaźnik skb jest zwalniany przed użyciem jego pola len do aktualizacji statystyk interfejsu. Poprawka przenosi instrukcje tak, aby skb->len było używane przed zwolnieniem.
- CVE-2024-41081Krytyczne
W jądrze Linux w module ILA funkcja ila_output() nie blokuje przerwań (BH), co może prowadzić do wyścigu i uszkodzenia struktur dst_cache. Poprawka polega na użyciu local_bh_disable().
- CVE-2024-41073Krytyczne
W jądrze Linuxa w podsystemie NVMe wykryto podwójne zwolnienie specjalnego ładunku (special payload). Jeśli żądanie discard wymaga ponowienia i ponowienie może się nie powieść przed dodaniem nowego ładunku, dochodzi do podwójnego zwolnienia.
- CVE-2024-41040Krytyczne
W jądrze Linux wykryto podatność use-after-free w module net/sched, związaną z rozwiązywaniem konfliktów (clash) w conntrack. Po rozwiązaniu konfliktu obiekt ct może zostać zwolniony, ale nadal jest używany w funkcji tcf_ct_flow_table_process_conn, co prowadzi do odczytu po zwolnieniu pamięci.
- CVE-2022-48851Krytyczne
W jądrze Linux w podsystemie staging (gdm724x) występuje podatność na użycie po zwolnieniu (UAF) w funkcji gdm_lte_rx(). Funkcja netif_rx_ni() zwalnia bufor skb, a następnie kod próbuje odczytać skb->len, co prowadzi do dostępu do zwolnionej pamięci.
- CVE-2022-48829Krytyczne
W jądrze Linux w NFSD naprawiono obsługę dużych rozmiarów plików w procedurach NFSv3 SETATTR/CREATE. Usunięto sprawdzenie min_t(), aby uniknąć nieoczekiwanego obcinania wartości rozmiaru pliku.
- CVE-2022-48828Krytyczne
W jądrze Linux w NFSD naprawiono problem niedomiaru (underflow) wartości ia_size. Ponieważ ia_size jest typem loff_t (ze znakiem), a rozmiar pliku w NFS jest typem bez znaku, duże wartości mogą powodować niedomiar. Dodano zabezpieczenie w nfsd_setattr().
- CVE-2022-48790Krytyczne
W jądrze Linux naprawiono podatność use-after-free w sterowniku nvme podczas resetowania kontrolera w trakcie ładowania. Problem występuje, gdy sterownik nie sprawdza gotowości kontrolera przed wysłaniem asynchronicznego zdarzenia (AER), co może prowadzić do użycia po zwolnieniu, zaobserwowanego w nvme-tcp.
- CVE-2022-48789Krytyczne
W jądrze Linux w sterowniku nvme-tcp naprawiono możliwość użycia po zwolnieniu (use-after-free) w pracy odzyskiwania po błędzie transportu. Aby zapobiec wyścigowi, praca odzyskiwania musi opróżnić async_event_work przed zniszczeniem kolejki administracyjnej.
- CVE-2022-48788Krytyczne
W jądrze Linuxa naprawiono podatność w sterowniku nvme-rdma, która mogła prowadzić do użycia po zwolnieniu (use-after-free) w pracy związanej z odzyskiwaniem po błędach transportu. Problem dotyczył wyścigu między sprawdzaniem stanu kontrolera a przygotowaniem komendy AER, co mogło skutkować nieprawidłowym działaniem.
- CVE-2024-40999Krytyczne
W jądrze Linuxa, w sterowniku sieciowym ena, dodano walidację spójności deskryptorów zakończeń. Sprawdzane jest, czy flaga 'first' jest ustawiona tylko dla pierwszego deskryptora w pakietach wielobufowych. W przypadku nieprawidłowego deskryptora nastąpi reset, a dodano nowy powód resetu dla uszkodzenia danych RX.
- CVE-2024-40983Krytyczne
W jądrze Linux w module TIPC naprawiono problem polegający na braku wymuszenia referencji do wpisu docelowego (dst) przed deszyfrowaniem. Może to prowadzić do awarii systemu w przypadku asynchronicznych żądań kryptograficznych.
- CVE-2024-40937Krytyczne
W jądrze Linuxa w sterowniku gve wykryto błąd polegający na pozostawieniu wskaźnika napi->skb wskazującego na zwolnione skb po wywołaniu dev_kfree_skb_any(). Może to prowadzić do zwisającego wskaźnika przy kolejnym wywołaniu napi_get_frags.
- CVE-2024-40923Krytyczne
W jądrze Linux w sterowniku vmxnet3 wykryto podatność polegającą na tym, że po nieudanej alokacji pamięci dla pierścienia danych RX, pole desc_size nie jest zerowane, co powoduje, że hypervisor odwołuje się do nieprawidłowego obszaru pamięci podczas odbioru pakietów. Prowadzi to do paniki jądra (kernel BUG) w funkcji skb_panic.
- CVE-2024-39293Krytyczne
W jądrze Linux wycofano poprawkę, która umożliwiała przekierowanie do dowolnego gniazda AF_XDP powiązanego z tym samym umem. Poprawka ta wprowadzała potencjalny crash jądra, gdy wiele instancji NAPI przekierowywało do tego samego gniazda, powodując uszkodzenie stanu pierścienia Rx.
- CVE-2024-36288Krytyczne
W jądrze Linux w module SUNRPC funkcja gss_free_in_token_pages() ma błędny warunek zakończenia pętli, ponieważ tablica in_token->pages[] nie jest zakończona NULL-em, co prowadzi do dzikiego odczytu pamięci (KASAN).
- CVE-2022-48711Krytyczne
W jądrze Linux w podsystemie TIPC występuje problem z walidacją rozmiaru otrzymywanych rekordów domeny. Funkcja tipc_mon_rcv() nie sprawdza, czy liczba członków w rekordzie nie przekracza limitu MAX_MON_DOMAIN, co może prowadzić do przepełnienia stosu. Dodatkowo dodano dodatkową kontrolę w tipc_link_proto_rcv() w celu zapobieżenia przepełnieniu bitowemu.
- CVE-2021-47587Krytyczne
W jądrze Linuxa w sterowniku systemport (Broadcom SYSTEMPORT) wykryto podatność związaną z brakiem globalnego blokowania dostępu do listy deskryptorów współdzielonej przez wszystkie kolejki transmisji. Umożliwia to równoczesne modyfikowanie deskryptorów przez wiele kolejek, co prowadzi do uszkodzenia danych i błędnych sum kontrolnych w pakietach UDP i TCP.
- CVE-2024-38570Krytyczne
W jądrze Linuxa w systemie plików GFS2 wykryto potencjalne użycie po zwolnieniu (use-after-free) glocka podczas odmontowywania. DLM automatycznie odblokowuje zamki, ale callbacki bast mogą pozostać aktywne i uzyskiwać dostęp do zwolnionych obiektów.
- CVE-2024-38558Krytyczne
W jądrze Linux w module Open vSwitch (openvswitch) wykryto podatność polegającą na nadpisywaniu oryginalnej krotki conntrack dla pakietów ICMPv6 podczas przetwarzania komendy OVS_PACKET_CMD_EXECUTE. Parsowanie nagłówka ICMPv6 zerowało pola związane z Neighbor Discovery (ND) nawet dla pakietów niebędących ND, co prowadziło do uszkodzenia metadanych conntrack i błędnego dopasowania pakietów.
- CVE-2024-38544Krytyczne
W jądrze Linuxa w podsystemie RDMA rxe wykryto błąd segmentacji w funkcji rxe_comp_queue_pkt(). Pakiet odpowiedzi jest dodawany do kolejki, a następnie odwoływano się do niego po podjęciu decyzji o uruchomieniu zadania, co może prowadzić do dostępu do zwolnionej pamięci.
- CVE-2024-36958Krytyczne
W jądrze Linuxa, w serwerze NFSD, występuje błąd powodujący awarię w funkcji nfsd4_encode_fattr4(). Problem polega na tym, że pole args.acl nie jest inicjalizowane na początku, a jest używane w bezwarunkowym wywołaniu kfree() przy wyjściu z funkcji, co prowadzi do awarii.
- CVE-2024-36913Krytyczne
W jądrze Linuxa naprawiono podatność w sterowniku vmbus (Hyper-V), gdzie w maszynach wirtualnych CoCo nieudane wywołanie set_memory_encrypted() lub set_memory_decrypted() mogło prowadzić do zwolnienia odszyfrowanych (współdzielonych) stron pamięci. Poprawka polega na wycieku stron w takim przypadku, aby uniknąć potencjalnych problemów funkcjonalnych lub bezpieczeństwa.
- CVE-2024-36912Krytyczne
W jądrze Linuxa naprawiono podatność w sterowniku vmbus (Hyper-V), gdzie w maszynach wirtualnych CoCo nieudane wywołanie set_memory_encrypted() lub set_memory_decrypted() mogło prowadzić do zwolnienia odszyfrowanych (współdzielonych) stron pamięci. Poprawka dodaje pole w strukturze vmbus_gpadl do śledzenia statusu odszyfrowania buforów, aby zapobiec zwracaniu takich stron do alokatora.
- CVE-2024-36911Krytyczne
W jądrze Linuxa w sterowniku hv_netvsc wykryto problem polegający na zwalnianiu odszyfrowanej pamięci. W maszynach wirtualnych CoCo nieufny host może spowodować niepowodzenie funkcji set_memory_encrypted() lub set_memory_decrypted(), co skutkuje zwróceniem błędu i pozostawieniem pamięci jako współdzielonej. Sterownik netvsc mógł zwalniać odszyfrowane (współdzielone) strony, jeśli set_memory_decrypted() zawiedzie. Poprawka sprawdza pole decrypted w gpadl, aby zdecydować, czy zwolnić pamięć.
- CVE-2024-36909Krytyczne
W jądrze Linuxa w sterowniku vmbus (Drivers: hv) wykryto problem polegający na zwalnianiu buforów pierścieniowych, które nie mogły zostać ponownie zaszyfrowane. W maszynach wirtualnych CoCo nieufny host może spowodować niepowodzenie funkcji set_memory_encrypted() lub set_memory_decrypted(), co skutkuje zwróceniem błędu i pozostawieniem pamięci jako współdzielonej. Kod buforów pierścieniowych VMBus mógł zwalniać odszyfrowane (współdzielone) strony, jeśli set_memory_decrypted() zawiedzie. Poprawka sprawdza pole decrypted w strukturze vmbus_gpadl dla buforów pierścieniowych, aby zdecydować, czy zwolnić pamięć.
- CVE-2024-36886Krytyczne
W jądrze Linux wykryto podatność use-after-free (UAF) w funkcji tipc_buf_append() w ścieżce obsługi błędów protokołu TIPC. Błąd został zgłoszony przez Sama Page'a we współpracy z Trend Micro Zero Day Initiative i może prowadzić do naruszenia integralności pamięci.
- CVE-2023-52881Krytyczne
W jądrze Linuxa wykryto podatność w implementacji protokołu TCP, która pozwalała na akceptowanie pakietów ACK potwierdzających bajty, które nigdy nie zostały wysłane. Problem dotyczy walidacji numerów ACK zgodnie z RFC 5961, co umożliwiało atakującemu manipulację strumieniem danych. Poprawka zaostrza sprawdzanie ACK, odrzucając pakiety z numerami spoza dozwolonego zakresu.
- CVE-2021-47544Krytyczne
W jądrze Linuxa wykryto podatność w mechanizmie TCP, która powoduje uszkodzenie fragmentów stron pamięci podczas obsługi błędów stron. Problem występuje, gdy proces serwera HTTP (np. Apache) korzysta z zamapowanego pliku CIFS, a błąd strony wywołuje zagnieżdżoną alokację fragmentów stron, co prowadzi do korupcji strumienia danych.

