Podatności Linux kernel
5642 znanych podatności CVE w Linux kernel, przetłumaczonych i ocenionych.
- CVE-2024-36929Wysokie
W jądrze Linux w podsystemie sieciowym (net: core) funkcje skb_copy i skb_copy_expand nie odrzucają pakietów SKB_GSO_FRAGLIST, które nie mogą być linearyzowane. Przekazanie takiego pakietu może prowadzić do awarii przy późniejszym wywołaniu skb_gso_segment.
- CVE-2024-36927Średnie
W jądrze Linux wykryto podatność polegającą na dostępie do niezainicjalizowanej wartości w funkcji __ip_make_skb(). Problem wynika z wyścigu przy sprawdzaniu flagi HDRINCL oraz braku inicjalizacji pól fl4_icmp_type i fl4_icmp_code w strukturze flowi4.
- CVE-2024-36903Średnie
W jądrze Linux wykryto podatność w funkcji __ip6_make_skb() dla IPv6, polegającą na potencjalnym dostępie do niezainicjalizowanej wartości. Problem wynika z nieprawidłowego sprawdzania flagi HDRINCL na gnieździe, co może prowadzić do wyścigu i odczytu niezainicjalizowanych danych.
- CVE-2024-36883Wysokie
W jądrze Linux w funkcji ops_init wykryto podatność na dostęp poza zakresem (out-of-bounds access). Problem wynika z podwójnego odczytu zmiennej max_gen_ptrs bez odpowiedniego blokowania, co może prowadzić do przydzielenia mniejszej tablicy niż później używana.
- CVE-2024-36016Wysokie
W jądrze Linux w sterowniku tty n_gsm istnieje podatność na zapis poza zakresem w funkcji gsm0_receive(). Przy przełączaniu trybów i wysyłaniu danych przekraczających gsm->len może dojść do zapisu poza bufor, co grozi uszkodzeniem pamięci.
- CVE-2021-47559Wysokie
W jądrze Linux w module net/smc występuje podatność na dereferencję wskaźnika NULL w funkcji smc_vlan_by_tcpsk(). Narzędzie Coverity wykryło, że funkcja netdev_lower_get_next może zwrócić NULL, a następnie ten wskaźnik jest używany bez sprawdzenia w is_vlan_dev(). Poprawka zastępuje ręczną iterację funkcją netdev_walk_all_lower_dev().
- CVE-2021-47551Wysokie
W jądrze Linux w sterowniku AMD dla KFD występuje podatność prowadząca do paniki jądra, gdy reset nie powiedzie się i zostanie wywołany ponownie. W konfiguracji SRIOV, jeśli reset nie przywróci układu ASIC do normalnego stanu, ale funkcja stop_cpsch została już wywołana, to przy ponownym resecie sterownik może wykonać nieprawidłową deinicjalizację.
- CVE-2021-47541Wysokie
W jądrze Linux w sterowniku mlx4_en wykryto błąd use-after-free w funkcji mlx4_en_try_alloc_resources(). Po wywołaniu mlx4_en_copy_priv() i błędzie, tmp->tx_cq jest zwalniane, a następnie w mlx4_en_alloc_resources() następuje dereferencja &tmp->tx_cq[t][i], co prowadzi do użycia po zwolnieniu. Dodano sprawdzenie wyniku mlx4_en_copy_priv(), aby to naprawić.
- CVE-2021-47520Wysokie
W jądrze Linux w sterowniku pch_can dla magistrali CAN występuje użycie po zwolnieniu (use-after-free) w funkcji pch_can_rx_normal. Po wywołaniu netif_receive_skb(skb) odwoływanie się do skb jest niebezpieczne, a struktura can_frame jest nadal używana.
- CVE-2021-47515Wysokie
W jądrze Linux w seg6 (Segment Routing IPv6) podczas enkapsulacji pakietu IPv4 w nagłówek IPv6+SRH, funkcja seg6_do_srh_encap czyści blok kontrolny IPv6, co powoduje utratę indeksu interfejsu odbierającego. Może to prowadzić do dereferencji pustego wskaźnika, gdy włączone jest zliczanie statystyk.
- CVE-2024-36013Wysokie
W jądrze Linuxa w podsystemie Bluetooth L2CAP wykryto podatność na użycie po zwolnieniu (slab-use-after-free) w funkcji l2cap_connect(). Problem wynika z braku odpowiedniego rozszerzenia sekcji krytycznej, co pozwala na przedwczesne zwolnienie struktury chan przed jej użyciem. Łatka wydłuża sekcję krytyczną i zmienia typ zwracany funkcji na void, aby zapobiec wyciekom wskaźników.
- CVE-2021-47433Wysokie
W jądrze Linux w systemie plików btrfs wykryto błąd w logice przerywania operacji w funkcji btrfs_replace_file_extents. W wyniku błędnego warunku może dojść do uszkodzenia systemu plików z brakującym fragmentem danych w środku pliku. Problem występuje, gdy operacja kończy się błędem innym niż -EOPNOTSUPP, a kod pochodzi z prealloc, co nie powinno powodować przerwania.
- CVE-2023-52846Wysokie
W jądrze Linux w podsystemie HSR występuje użycie po zwolnieniu (use-after-free) w funkcji prp_create_tagged_frame(). Funkcja prp_fill_rct() może zakończyć się niepowodzeniem, zwalniając skb i zwracając NULL, ale wcześniej zwracany jest oryginalny skb, co prowadzi do użycia zwolnionej pamięci.
- CVE-2023-52834Wysokie
W jądrze Linux w sterowniku atl1c występuje podatność związana z przepełnieniem DMA RX. Problem rozwiązano, sprawdzając adres przydzielonego skb i używając skb_reserve() do uniknięcia problematycznego adresu 0x...fc0. Testy przeprowadzono na AR8131 w Acer 4540.
- CVE-2023-52801Wysokie
W jądrze Linuxa w podsystemie iommufd występuje podatność polegająca na braku aktualizacji drzewa domains_itree po podziale obszaru iopt_area. Jeśli oryginalny obszar był powiązany z domeną, strony nie są poprawnie ponownie wstawiane, co prowadzi do uszkodzenia drzewa i użycia po zwolnieniu (UAF).
- CVE-2023-52798Wysokie
W jądrze Linuxa w sterowniku wifi ath11k występuje brak oznaczenia sekcji krytycznej RCU podczas obsługi zdarzeń radaru DFS. Kod wywołujący ath11k_mac_get_ar_by_pdev_id() nie był oznaczony jako sekcja krytyczna odczytu RCU, co może prowadzić do użycia po zwolnieniu.
- CVE-2023-52776Wysokie
W jądrze Linuxa, w sterowniku Wi-Fi ath12k, wykryto problem z synchronizacją (RCU) w obsłudze zdarzeń DFS-radar i temperatury. Kod nie był oznaczony jako sekcja krytyczna odczytu RCU, co może prowadzić do użycia po zwolnieniu (use-after-free).
- CVE-2023-52769Wysokie
W jądrze Linux w sterowniku WiFi ath12k występuje problem z blokowaniem podczas obsługi zdarzeń htt mlo-offset. Kod nie był oznaczony jako sekcja krytyczna RCU, co może prowadzić do użycia po zwolnieniu.
- CVE-2021-47431Średnie
W jądrze Linux w sterowniku AMDGPU występuje wyciek licznika pin_count dla obiektu gart.bo. Funkcja wyłączająca GART nie jest wywoływana w scenariuszu SRIOV, co prowadzi do wycieku podczas odładowania sterownika.
- CVE-2021-47410Średnie
W jądrze Linux w sterowniku AMDKFD funkcja svm_migrate_fini wywołuje zbędne operacje zwalniania zasobów, co prowadzi do ostrzeżeń i potencjalnych problemów podczas odłączania sterownika.
- CVE-2021-47397Wysokie
W jądrze Linux w protokole SCTP funkcja sctp_rcv_ootb nie sprawdza, czy skb_header_pointer zwraca NULL przed użyciem, co może prowadzić do dereferencji wskaźnika NULL. Poprawka dodaje sprawdzenie i wyjście z funkcji, gdy zwracana jest wartość NULL.
- CVE-2021-47388Wysokie
W jądrze Linux w podsystemie mac80211 występuje użycie po zwolnieniu (use-after-free) podczas odbioru ramek CCMP/GCMP. W pewnych warunkach zmienna 'hdr' może być nieprawidłowa, co prowadzi do użycia zwolnionej pamięci.
- CVE-2021-47374Wysokie
W jądrze Linuxa w module dma-debug komunikat o błędzie może być generowany miliony razy na sekundę, co powoduje spam w buforze printk i obciążenie CPU do 100%. Problem dotyczy sterowników korzystających z API DMA.
- CVE-2021-47368Wysokie
W jądrze Linux w sterowniku enetc występuje nielegalny dostęp do pamięci podczas odczytu pliku affinity_hint w procfs. Funkcja irq_set_affinity_hit() przechowuje referencję do tymczasowej zmiennej na stosie, co prowadzi do błędu strony przy późniejszym dostępie. Problem rozwiązano za pomocą pomocniczej funkcji get_cpu_mask(), która zapewnia trwałe przechowywanie.
- CVE-2021-47354Wysokie
W jądrze Linux w drm/sched (GPU scheduler) przed zabiciem zadania należy poczekać na zakończenie wszystkich jego zależności, aby uniknąć uszkodzenia danych.
- CVE-2021-47347Wysokie
W jądrze Linux w sterowniku wl1251 funkcja wl1251_cmd_scan wywołuje memcpy bez sprawdzania długości, co może prowadzić do przepełnienia bufora. Poprawka polega na sprawdzeniu, czy długość mieści się w maksymalnym dozwolonym rozmiarze.
- CVE-2021-47335Średnie
W jądrze Linux naprawiono podatność w systemie plików f2fs, gdzie wiele instancji systemu plików mogło rywalizować o dostęp do globalnego wskaźnika fsync_entry_slab, co prowadziło do użycia po zwolnieniu (use-after-free) podczas odzyskiwania danych. Poprawka inicjalizuje i niszczy ten cache tylko raz podczas inicjalizacji i zniszczenia modułu, aby uniknąć problemu.
- CVE-2021-47316Wysokie
W jądrze Linuxa naprawiono błąd wyłuskania NULL w funkcji nfs3svc_encode_getaclres w nfsd, który występował w przypadkach błędów, gdy dentry mogło być NULL.
- CVE-2021-47308Wysokie
W jądrze Linux naprawiono podatność w module scsi/libfc, polegającą na wyjściu poza zakres tablicy w funkcji fc_rport_prli_resp().
- CVE-2021-47307Wysokie
W jądrze Linux w module CIFS (Common Internet File System) występuje podatność na wyłuskanie pustego wskaźnika w funkcji cifs_compose_mount_options(). Opcjonalny parametr @ref może zawierać pusty node_name, co prowadzi do próby dereferencji pustego wskaźnika.
- CVE-2021-47290Wysokie
W jądrze Linux w podsystemie SCSI target występuje dereferencja wskaźnika NULL podczas kończenia operacji XCOPY. Funkcja target_complete_cmd() używa wskaźnika se_tpg_wwn, który jest NULL dla globalnego tpg używanego przez XCOPY, co prowadzi do paniki. Poprawka sprawdza, czy se_tpg_wwn jest NULL i wtedy używa se_cmd->cpuid.
- CVE-2021-47259Wysokie
W jądrze Linux w NFS występuje use-after-free w nfs4_init_client(), gdy próbujemy zamontować dwa różne eksporty przez dwa różne interfejsy sieciowe należące do tego samego serwera. Problem został zgłoszony przez KASAN.
- CVE-2021-47253Średnie
W jądrze Linux w sterowniku graficznym AMD Display Manager (DMUB) występuje wyciek pamięci podczas operacji wstrzymania i wznowienia systemu. Funkcja inicjalizująca DMUB alokuje pamięć przy każdym wznowieniu, co prowadzi do narastającego wycieku.
- CVE-2021-47245Wysokie
W jądrze Linux w module netfilter synproxy parser opcji TCP (synproxy_parse_options) może odczytać jeden bajt poza granicami. Gdy długość wynosi 1, wykonanie wchodzi w pętlę, odczytuje jeden bajt opcode, a jeśli nie jest to TCPOPT_EOL ani TCPOPT_NOP, odczytuje kolejny bajt, co przekracza długość 1. Poprawka dodaje wczesny powrót, gdy długość < 0.
- CVE-2021-47244Wysokie
W jądrze Linux w mptcp (Multipath TCP) parser opcji TCP (mptcp_get_options) może czytać jeden bajt poza zakresem, gdy długość opcji wynosi 1. Poprawka jest inspirowana podobną poprawką dla IPv4 TCP.
- CVE-2024-35905Wysokie
W jądrze Linuxa zidentyfikowano podatność związaną z przepełnieniem typu całkowitego przy dostępie do rozmiaru stosu. Poprawka przywraca ochronę przed negatywnym rozmiarem dostępu do pamięci stosu, co mogło prowadzić do nieprawidłowych dostępów do tablic.
- CVE-2024-35880Wysokie
W jądrze Linux w podsystemie io_uring/kbuf występuje podatność polegająca na braku utrzymania referencji do listy buforów podczas operacji mmap. Może to pozwolić na wyrejestrowanie bufora przed zakończeniem jego użycia. Poprawka polega na przechowywaniu referencji do listy buforów pod RCU, aby zapobiec jej wyrejestrowaniu.
- CVE-2024-35857Wysokie
W jądrze Linuxa w funkcji icmp_build_probe() występują potencjalne dereferencje NULL. Podwójne wywołanie __in_dev_get_rcu() może zwrócić NULL, a odczyt dev->ip6_ptr nie ma sprawdzenia NULL. Poprawka używa odpowiedniego API RCU.
- CVE-2024-35835Wysokie
W jądrze Linuxa, w sterowniku sieciowym mlx5e, wykryto podwójne zwolnienie pamięci w funkcji arfs_create_groups. Gdy alokacja pamięci zawiedzie, funkcja zwalnia ft->g, a następnie wywołanie mlx5e_destroy_flow_table zwalnia go ponownie.
- CVE-2024-35797Wysokie
W jądrze Linux w funkcji cachestat dla shmem występują dwa błędy związane z wyścigami podczas operacji swapowania i unieważniania. Pierwszy błąd może prowadzić do dostępu poza zakresem tablicy swapper_spaces[] w przypadku zatrutego wpisu swap. Drugi błąd może powodować fałszywe wyniki w workingset_test_recent() z powodu braku cienia w swapcache. Poprawka dodaje walidację wpisu i obsługę przypadku braku cienia.
- CVE-2023-52669Wysokie
W jądrze Linux w module kryptograficznym s390 AES występuje podatność na odczyt poza zakresem bufora w trybie CTR. Podczas przetwarzania ostatniego bloku kod zawsze czyta cały blok, nawet jeśli nie ma całego bloku danych, co prowadzi do odczytu poza przydzielonym buforem.
- CVE-2023-52664Wysokie
W jądrze Linux w sterowniku sieciowym atlantic występuje podwójne zwolnienie pamięci w logice obsługi błędów. Funkcja aq_ring_free może być wywołana wielokrotnie dla tego samego pierścienia, gdy system jest pod obciążeniem i wystąpi błąd alokacji pamięci.
- CVE-2024-27407Wysokie
W jądrze Linux w systemie plików NTFS3 naprawiono problem z przepełnieniem w funkcji mi_enum_attr().
- CVE-2024-27401Wysokie
W jądrze Linux w sterowniku firewire nosy wykryto problem, gdzie funkcja packet_buffer_get nie uwzględniała wartości user_length. Jeśli długość nagłówka pakietu przekracza user_length, funkcja zwraca teraz 0, informując użytkownika, że nie odczytano danych i potrzebny jest większy bufor. Pomaga to zapobiec przepełnieniom w przestrzeni użytkownika.
- CVE-2024-27396Wysokie
W jądrze Linuxa zidentyfikowano podatność związana z użyciem po zwolnieniu (Use-After-Free) w funkcji gtp_dellink. Problem wynika z nieprawidłowego zarządzania sekcją krytyczną RCU, co może prowadzić do zwolnienia klucza podczas przetwarzania.
- CVE-2023-52656Wysokie
W jądrze Linux w io_uring usunięto martwy kod związany z SCM_RIGHTS. Po zaprzestaniu wsparcia dla przekazywania deskryptorów io_uring przez SCM_RIGHTS, kod ten został usunięty.
- CVE-2023-52654Wysokie
W jądrze Linuxa wykryto podatność związaną z przesyłaniem plików io_uring przez gniazda AF_UNIX. Cykle referencji plików powodowały problemy i wyścigi, dlatego zdecydowano się całkowicie zabronić wysyłania plików io_uring przez gniazda za pomocą SCM_RIGHTS.
- CVE-2022-48670Wysokie
W jądrze Linuxa w podsystemie PECI (Platform Environment Control Interface) występuje podatność na użycie po zwolnieniu (use-after-free) w funkcji adev_release(). Gdy auxiliary_device_add() zwróci błąd, wywoływane jest auxiliary_device_uninit(), co zmniejsza licznik referencji i uruchamia callback .release. Ponowne wywołanie auxiliary_device_uninit() w adev_release() prowadzi do użycia po zwolnieniu.
- CVE-2024-27390Średnie
W jądrze Linux usunięto niepotrzebne wywołanie synchronize_net() w funkcji ipv6_mc_down(). To wywołanie powodowało opóźnienia od 200 mikrosekund do 5 milisekund pod obciążeniem.
- CVE-2024-27073Wysokie
W jądrze Linuxa, w sterowniku media ttpci, wykryto dwa wycieki pamięci w funkcji budget_av_attach. Gdy funkcje saa7146_register_device i saa7146_vv_init zawiodą, zasoby nie są zwalniane. Poprawka dodaje odpowiednie zwalnianie zasobów.

