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 funkcja btf_var_show() bezwarunkowo wywołuje btf_type_id_resolve(), która dereferencjonuje btf->resolved_ids, będący NULL dla bazowego BTF (np. vmlinux BTF). Program BPF przekazujący type_id typu BTF_KIND_VAR z vmlinux BTF do bpf_snprintf_btf() powoduje dereferencję NULL. Poprawka rozwiązuje typ zmiennej bezpośrednio przez btf_type_skip_modifiers(), gdy resolved_ids jest NULL.
W jądrze Linux punkty śledzenia signal_generate i signal_deliver deklarują argument info jako wskaźnik do struct kernel_siginfo, przez co btf_ctx_access() traktuje go jako zaufany wskaźnik dla programów tp_btf. Jednak dostarczanie sygnałów używa SEND_SIG_NOINFO (0) i SEND_SIG_PRIV (1) jako wartości specjalnych, które nie są wskaźnikami. Program tp_btf może wywołać dereferencję tych wartości i spowodować błąd jądra, a signal_generate może działać w kontekście przerwania timera, co prowadzi do paniki jądra.
W jądrze Linux tail call z niezerowej ramki jest modelowany jako powrót z tej ramki, a weryfikator ustawia R0 jako nieznane i wywołuje prepare_func_exit(). Gdy bieżąca ramka jest synchronicznym callbackiem, prepare_func_exit() wymusza kontrakt wartości zwracanej i oznacza R0 jako precise, co prowadzi do błędu weryfikatora "callback unexpected regs". Zadanie z CAP_BPF może wywołać WARN i błąd -EFAULT BPF_PROG_LOAD. Poprawka odrzuca tail call bezpośrednio z ramek callbacków.
W jądrze Linux funkcja __bpf_rbtree_add() utrzymuje wskaźniki parent i link aktywne podczas wywołań callbacku porównania dostarczonego przez program, więc weryfikator wymaga, aby blokada korzenia była trzymana przez cały callback. Ścieżka pomocnicza egzekwuje tę regułę dla bpf_spin_lock() i bpf_spin_unlock(), ale ścieżka argumentu kfunc resilient lock tego nie robi. Callback może zwolnić blokadę korzenia i pozwolić innemu CPU usunąć i zwolnić węzeł, którego dotyczy trwające przejście drzewa, co prowadzi do użycia zwolnionych wskaźników.
W jądrze Linux funkcja do_wait() przekazuje wo->wo_pid do punktu śledzenia sched_process_wait, ale kernel_wait4() pozostawia wo_pid jako NULL dla wait4(-1), a kernel_waitid_prepare() robi to samo dla waitid(P_ALL). btf_ctx_access() typuje argument 0 jako PTR_TO_BTF_ID | PTR_TRUSTED bez PTR_MAYBE_NULL, więc weryfikator akceptuje niesprawdzoną dereferencję. Ponieważ zaufane wskaźniki nie mają ochrony przed błędami, oczekiwanie na dowolne dziecko może spowodować dereferencję NULL w kodzie BPF JIT. Poprawka oznacza argument 0 jako nullable.
W jądrze Linux funkcje bpf_sys_bpf() i bpf_sys_close() mogą usypiać (np. przez muteksy, alokacje GFP_KERNEL, oczekiwanie na RCU grace period), ale nie mają ustawionego .might_sleep w prototypach. Są one ograniczone do BPF_PROG_TYPE_SYSCALL, którego program główny jest usypialny, ale callback bpf_timer zarejestrowany przez program syscall jest sprawdzany w kontekście nieusypialnym. Taki callback może wywołać bpf_sys_bpf() z kontekstu softirq hrtimer i wywołać błąd planowania w kontekście atomowym. Poprawka ustawia .might_sleep na obu prototypach.
W jądrze Linux kod walidacji trwałego bufora pierścieniowego używał meta->nr_subbufs bez sprawdzenia, czy odpowiada on nr_pages + 1, zakładając, że obie wartości są takie same. Poprawka dodaje sprawdzenie w kodzie walidacji, aby upewnić się, że zapisany nr_subbufs jest zgodny z oczekiwanym.
W jądrze Linux funkcja nvme_scan_ns_list() usuwa nieaktualne przestrzenie nazw w każdej luce raportowanej listy NSID po jednym NSID na raz, wywołując nvme_find_get_ns() w każdej iteracji. Ponieważ NSID są 32-bitowe, rzadka przestrzeń NSID może spowodować, że pojedyncza luka wykona miliardy iteracji bez niczego do usunięcia, prowadząc do soft lockup. Poprawka zmienia nvme_remove_invalid_namespaces() na nvme_remove_nsid_range() z otwartym zakresem (start, end) NSID, co ogranicza pracę do rzeczywiście obecnych przestrzeni nazw.
W jądrze Linux w sterowniku ASoC Intel AVS funkcja snd_hdac_ext_bus_get_ml_capabilities() może zwrócić błąd, którego kod powrotu nie był sprawdzany w avs_pci_probe(). Dodatkowo w przypadku niepowodzenia dalszej części avs_pci_probe() lista hlink nie była czyszczona przed wyjściem z funkcji.
W jądrze Linux w sterowniku ASoC Intel AVS funkcja strace_open() wywołuje try_module_get(), które przy powodzeniu zwiększa licznik referencji modułu. Jeśli kolejna operacja spowoduje niepowodzenie strace_open(), licznik referencji nie jest zmniejszany, co prowadzi do niezrównoważonego stanu.
W jądrze Linux w sterowniku ASoC Intel AVS kod odwołuje się do wpisów w tablicy init_configs za pomocą indeksów z tablicy config_ids, które są ograniczone przez num_config_ids, a nie num_init_configs. Użycie identyfikatora większego lub równego num_init_configs prowadzi do dostępu poza zakresem tablicy w avs_path_module_send_init_configs().
W jądrze Linux w sterowniku sieciowym bcmasp funkcja bcmasp_xmit() ustawiała txcb->last = true tylko dla ostatniego fragmentu SKB, pozostawiając pole niezmienione dla wcześniejszych fragmentów. Jeśli slot deskryptora został ponownie użyty z nieaktualną wartością true z poprzedniego SKB, bcmasp_tx_reclaim() mogło przedwcześnie zwolnić sk_buff, podczas gdy jego pozostałe fragmenty były jeszcze w locie.
W jądrze Linux w sterowniku sieciowym bcmasp funkcja tx_spb_ring_full() inicjalizowała next_index od intf->tx_spb_index w każdej iteracji pętli, przez co incr_ring() zawsze dawał ten sam wynik i tylko jeden slot był testowany. Powodowało to nieprawidłowe sprawdzanie dostępności kolejnych slotów deskryptorów przed transmisją.
W jądrze Linux w sterowniku mlxsw (moduł spectrum_ptp) funkcja zbierająca śmieci PTP wywoływała napi_gro_receive() z kontekstu workqueue zamiast z kontekstu NAPI. Powodowało to równoczesną modyfikację listy GRO przez dwa wątki (GC i wątek NAPI na innym CPU), co prowadziło do uszkodzenia listy i paniki jądra. Problem naprawiono, wprowadzając ścieżkę dostarczania pakietów używającą netif_receive_skb() zamiast napi_gro_receive().
W jądrze Linux w podsystemie BPF funkcja is_cmpxchg_insn() dopasowuje tylko BPF_MODE == BPF_ATOMIC, przez co arena cmpxchg nie otrzymuje wymaganego rozszerzenia zerowego dla 32-bitowej operacji. Może to prowadzić do nieprawidłowych wartości w rejestrze docelowym na architekturach wymagających jawnego rozszerzenia zerowego.
W jądrze Linux w podsystemie BPF funkcja mark_fastcall_pattern_for_call() musi zapewnić, że dopasowana sekwencja instrukcji "spill; call; fill" nie jest przerwana przez skok. W przeciwnym razie przepisanie zastosowane przez bpf_remove_fastcall_spills_fills() jest niepoprawne. Poprawka rejestruje instrukcje będące celami skoków w insn_aux_data[*].jump_target i używa tej flagi do zatrzymania rozwijania wzorca.
W jądrze Linux w podsystemie BPF funkcja in_rbtree_lock_required_cb() sprawdza tylko najgłębszą ramkę weryfikatora, przez co ograniczenia callbacku rbtree znikają w zagnieżdżonej ramce wywołania statycznego podprogramu. Podprogram może odblokować drzewo, usunąć i zwolnić porównywany węzeł, a następnie ponownie zablokować, co prowadzi do wstawienia zwolnionej pamięci do drzewa.
W jądrze Linux w podsystemie BPF funkcja bpf_btf_find_by_name_kind() zwraca nowy deskryptor pliku obiektu BTF przez __btf_new_fd(), co prowadzi do anon_inode_getfd(), która może spać podczas alokacji lub rozszerzania tablicy deskryptorów. Prototyp helpera nie ustawia might_sleep, więc weryfikator zezwala na jego użycie w kontekstach nieuśpialnych, takich jak callbacki timerów BPF.
W jądrze Linux podatność w weryfikatorze BPF dotyczy helperów stosu, które mogą blokować na odczytach systemu plików (np. przy rozwiązywaniu build ID), ale nie były oznaczone jako uśpialne. Weryfikator mógł zezwolić na ich wywołanie z regionów nieuśpialnych, takich jak sekcje RCU czy z wyłączonym wywłaszczaniem.
W jądrze Linux weryfikator BPF błędnie obsługiwał przestarzałe instrukcje ładowania pakietów (BPF_LD_ABS/BPF_LD_IND) wywoływane z callbacków, co prowadziło do błędu weryfikatora i ostrzeżenia oraz błędu -EFAULT przy BPF_PROG_LOAD. Uprawniony ładowacz programów mógł wywołać ten problem.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

