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.10.29)
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 ubifs_sb_verify_signature() sprawdza pole ubifs_sig_node->len z błędnym znakiem, dodając rozmiar nagłówka zamiast go odejmować. To akceptuje zadeklarowaną długość do 2 * UBIFS_SIG_NODE_SZ większą niż węzeł faktycznie zawiera, co prowadzi do odczytu poza granicami bufora c->sbuf podczas przetwarzania podpisu PKCS7.
W jądrze Linux usunięto błędny WARN_ON_ONCE z funkcji nfsd_mode_check(). Założenie uzasadniające ostrzeżenie było nieprawidłowe w przypadku reeksportu NFS, gdzie funkcja może napotkać dentry bez i_op->lookup. Zwracanie nfserr_notdir pozostaje konieczne, aby chronić ścieżkę lookup_one_unlocked() przed wywołaniem wskaźnika NULL.
W jądrze Linux wskaźnik nlmsvc_ops był publikowany i czyszczony zwykłymi zapisami, a lockd odwoływał się do niego bez zabezpieczenia z miejsc dyspozycji w fs/lockd/svcsubs.c. Po usunięciu modułu nfsd nieaktualne odwołanie mogło prowadzić do dereferencji NULL lub use-after-free tekstu modułu.
W jądrze Linux funkcja nfsd_cross_mnt() przy błędzie follow_down() przechodziła do etykiety out bez zwolnienia referencji ścieżki pobranych przez mntget() i dget(). Powodowało to wyciek referencji przy każdym nieudanym cross-mount, blokując odmontowanie i przypinając dentries.
W jądrze Linux w module nfsd nie resetowano weryfikatora zapisu (write verifier) po niepowodzeniu asynchronicznego zapisu wstecznego operacji COPY. Gdy zapis wsteczny się nie powiódł, serwer zgłaszał klientowi NFS_UNSTABLE, ale nie rotował weryfikatora, przez co klient po wykonaniu COMMIT uznawał dane za trwałe, mimo że zapis się nie udał.
W jądrze Linux funkcja nfsd_dispatch() nie przywracała rq_status_counter do wartości parzystej na wszystkich ścieżkach wyjścia (cache-hit, drop, błąd kodowania). Pozostawiony nieparzysty licznik powodował, że bezblokadowy czytnik w nfsd_nl_rpc_status_get_dumpit() uznawał pola rqstp za stabilne i mógł odczytać dane poza końcem 8-elementowej tablicy ops.
W jądrze Linux funkcja _nfsd_copy_file_range() próbkowała kursor błędu zapisu wstecznego (dst->f_wb_err) po pętli kopiowania, a nie przed nią. Współbieżne COMMIT lub stabilny WRITE mogły przesunąć kursor, przez co błąd zapisu nie był wykrywany i ustawiano NFSD4_COPY_F_COMMITTED mimo niepowodzenia zapisu.
W jądrze Linux funkcja nfsd4_decode_create() przyjmowała nieograniczoną wartość cr_datalen z sieci dla celów dowiązań symbolicznych NF4LNK, umożliwiając klientowi wymuszenie alokacji kmalloc o rozmiarze do maksymalnego ładunku RPC (kilka MiB) na każdą operację COMPOUND. VFS odrzucał zbyt duże cele z ENAMETOOLONG, ale alokacja już się odbywała.
W jądrze Linux w module nfsd występuje luka polegająca na tym, że po operacji FOREIGN PUTFH kolejne operacje mogą być wykonywane mimo że fh_dentry ma wartość NULL. Zdalny klient NFSv4.2 może spreparować żądanie COMPOUND, które doprowadzi do dereferencji wskaźnika NULL w wątku jądra nfsd. Problem dotyczy konfiguracji z włączonym CONFIG_NFSD_V4_2_INTER_SSC.
W jądrze Linux w module nfsd funkcja nfsd4_decode_posixacl() przyjmuje od klienta nieograniczoną liczbę wpisów ACL i przekazuje ją do sortowania bąbelkowego o złożoności O(n^2). Klient może wybrać dowolnie dużą wartość, powodując nadmierne zużycie CPU na serwerze. Brakuje symetrycznego sprawdzenia limitu NFS_ACL_MAX_ENTRIES, które istnieje po stronie kodera.
W jądrze Linux w module nfsd funkcja nfsd_break_one_deleg() ustawia bit NFSD4_CALLBACK_RUNNING, ale gdy próba zakolejkowania recall nie powiedzie się, bit nie jest czyszczony. Powoduje to trwałe zablokowanie kolejnych prób zerwania delegacji na tym samym obiekcie, przez co delegacja nigdy nie zostaje zerwana, a konfliktowe otwarcie lub blokada zawiesza się. Poprawka czyści bit w gałęzi !queued.
W jądrze Linux w module nfsd funkcja nfsd4_release_compoundargs() resetuje wskaźnik args->ops do tablicy iops[8], ale nie zeruje args->opcnt, który może wynosić do 200 dla NFSv4.1+. Gdy rq_status_counter utknie na wartości nieparzystej, handler dumpit czyta do 16 wpisów z args->ops[], wykraczając poza tablicę i ujawniając przyległą pamięć slab do przestrzeni użytkownika przez netlink. Poprawka zeruje opcnt bezwarunkowo.
W jądrze Linux w module nfsd bufor args->ops jest zwalniany synchronicznie przez vfree() w nfsd4_release_compoundargs(), podczas gdy handler dumpit netlink rpc_status odczytuje ten bufor pod rcu_read_lock. Współbieżne zakończenie compound może zwolnić bufor w trakcie odczytu, powodując use-after-free na pamięci vmalloc. Poprawka zastępuje vfree() przez kvfree_rcu_mightsleep(), odraczając zwolnienie o okres karencji RCU.
W jądrze Linux w module nfsd funkcja nfsd_file_do_acquire() mogła użyć pliku zwróconego przez dentry_create(), który nie został faktycznie otwarty, ponieważ ->atomic_open może zwrócić sukces przez finish_no_open(). Sytuacja jest bardzo mało prawdopodobna, ale poprawka wymaga, aby nfsd używał pliku tylko gdy ustawiona jest flaga FMODE_OPENED.
W jądrze Linux funkcja clients_still_reclaiming() oblicza termin na podstawie nn->boot_time (CLOCK_REALTIME) i porównuje go z ktime_get_boottime_seconds() (CLOCK_BOOTTIME), przez co porównanie jest zawsze fałszywe. W efekcie dowolny klient może utrzymywać serwer w stanie grace w nieskończoność, wysyłając żądania CLAIM_PREVIOUS OPEN, blokując wszystkie operacje nie-reclaim dla pozostałych klientów.
W jądrze Linux funkcja nfs4_alloc_init_cpntf_state() publikowała nowy wpis cpntf w IDR s2s_cp_stateids w jednej sekcji s2s_cp_lock, a następnie ponownie brała blokadę, aby dodać go do p_stid->sc_cp_list. W tej luce wpis był osiągalny przez so_id, ale cp_list pozostawał wyzerowany, co pozwalało wyścigowemu OFFLOAD_CANCEL wywołać list_del() na zerowej liście i uszkodzić serwer (oops).
W jądrze Linux funkcja nfsd_file_dispose_list_delayed() odkłada fput() do wątków usługi nfsd przez kolejkę freeme per-net, która znajduje się w osobno alokowanej strukturze nfsd_fcache_disposal zwalnianej podczas niszczenia przestrzeni nazw sieci. Globalny shrinker, laundrette i callbacki fsnotify mogą nadal odwoływać się do tego wskaźnika, powodując use-after-free.
W jądrze Linux w funkcji nfsd4_copy() występuje wyciek pamięci nfsd_file, gdy konfiguracja kopiowania między serwerami (inter-server COPY) zakończy się niepowodzeniem. Funkcja zwraca błąd bezpośrednio, pomijając etykietę out:, która zwolniłaby referencję do pliku. Każda nieudana operacja powoduje wyciek jednego obiektu nfsd_file, blokując plik, i-węzeł, dentry i punkt montowania.
W jądrze Linux w funkcji nfsd4_setattr() występuje dereferencja NULL, gdy żądanie SETATTR zawiera atrybuty czasu delegacji (FATTR4_WORD2_TIME_DELEG_ACCESS lub FATTR4_WORD2_TIME_DELEG_MODIFY) i klient poda specjalny stateid (wszystkie bajty 0xFF). Wskaźnik st pozostaje NULL, a następnie jest dereferencjonowany, powodując oops jądra. Podatność jest zdalnie wyzwalana przez dowolnego klienta NFSv4 bez uwierzytelnienia.
W jądrze Linux w funkcji nfsd_direct_write() występuje błąd wykrywania częściowego zapisu. Po wywołaniu vfs_iocb_iter_write() pole iter.count zawiera pozostałą liczbę bajtów, a nie oryginalną długość, więc warunek przerwania pętli jest nieprawidłowy. Krótkie zapisy kończące się między 50% a 99% segmentu nie są wykrywane, co prowadzi do zapisu kolejnego segmentu pod niewłaściwym przesunięciem i błędnego raportowania liczby bajtów do klienta NFS.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

