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.06)
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 funkcji __kick_flushing_caps() w module ceph występuje podatność use-after-free. Funkcja iteruje po liście i_cap_flush_list, ale zwalnia blokadę i_ceph_lock podczas wysyłania komunikatów cap, co pozwala funkcji handle_cap_flush_ack() zwolnić wpis cf, do którego oryginalny wątek odwołuje się po ponownym zdobyciu blokady.
W jądrze Linux w funkcji check_new_map() w podsystemie ceph występuje błąd use-after-free. Funkcja zwalnia mutex mdsc->mutex, aby wykonać operacje na sesji, ale w trzech ścieżkach (zmiana adresu, reconnect, przejście do stanu active) nie pobiera wcześniej referencji na obiekt sesji. Inny wątek może w tym oknie zwolnić i usunąć sesję, co prowadzi do dostępu do zwolnionej pamięci.
W jądrze Linux w module ceph występuje podatność polegająca na braku odrzucania rang export_targets >= CEPH_MAX_MDS podczas dekodowania mdsmap. Funkcja check_new_map() używa każdego wpisu jako numeru bitu w bitmapie na stosie, więc ranga spoza przestrzeni nazw protokołu może spowodować zapis poza tablicą przez set_bit().
W jądrze Linux w module ceph występuje podatność polegająca na braku ograniczenia długości kopiowanej nazwy dentry w eksporcie NFS. Funkcja ceph_get_name() kopiuje nazwę dostarczoną przez MDS do bufora o rozmiarze NAME_MAX bez sprawdzenia dname_len, co prowadzi do przepełnienia bufora. __get_snap_name() kopiuje dane w ten sam niekontrolowany sposób.
W jądrze Linux w funkcji handle_session() modułu ceph brakowało sprawdzenia granic podczas dekodowania pól match.path i match.fs_name z rekordów MDSCapAuth w komunikacie CEPH_SESSION_OPEN. Złośliwy lub przejęty serwer MDS może podać zbyt dużą długość, powodując odczyt poza buforem (do 4 GiB) i awarię klienta. Problem naprawiono, przełączając kopiowanie na ceph_decode_copy_safe().
W jądrze Linux w funkcji ceph_mdsmap_decode() brakowało sprawdzenia granic tablicy num_export_targets dla rekordów info MDS w wersjach 2 i 3. Złośliwy lub przejęty monitor Ceph może wysłać mapę MDS z nadmierną wartością num_export_targets, powodując odczyt poza granicami pamięci w kliencie jądra CephFS.
W jądrze Linux występuje luka w funkcji __build_xattrs() w podsystemie Ceph, która dekoduje atrybuty xattr dostarczone przez serwer MDS. Brak sprawdzenia długości wartości ostatniego atrybutu pozwala złośliwemu lub przejętemu serwerowi metadanych ustawić długość większą niż rzeczywisty rozmiar bufora, co prowadzi do odczytu poza granicami alokacji. Poprawka dodaje wymaganą weryfikację ceph_decode_need(), która zwraca -EIO zamiast przechowywania nieprawidłowej długości.
W jądrze Linux naprawiono podatność w funkcji ceph_parse_deleg_inos() w kliencie Ceph. Złośliwy lub przejęty serwer MDS mógł przesłać odpowiedź z ogromną lub powtarzaną liczbą delegowanych numerów inode, co powodowało nieograniczone pętle i nadmierny wzrost struktury xarray w sesji klienta. Wprowadzono limit liczby delegowanych inode na sesję oraz limit łącznej długości interwału w pojedynczej odpowiedzi.
W jądrze Linux w podsystemie Ceph funkcja ceph_cap_reclaim_work() wielokrotnie się przekolejkowała, gdy ceph_trim_dentries() zwracało -EAGAIN, co prowadziło do zapętlenia zużywającego CPU bez postępu. Problem pogłębiało odświeżanie ważnych dzierżaw katalogów (TOUCH) zamiast ich pozostawiania (KEEP), co uniemożliwiało naturalne zakończenie skanowania. Poprawka zmienia logikę zwalniania dzierżaw i warunki zwracania -EAGAIN.
W jądrze Linux naprawiono wyciek referencji do i-węzła w systemie plików Ceph podczas przerywania zapisu przy odmontowywaniu. Gdy funkcja ceph_inc_osd_stopping_blocker() zawiedzie w trakcie odmontowywania, żądanie zapisu jest przerywane, a pobrana referencja bufora zapisu (i_wrbuffer_ref) nie jest zwalniana, przez co i-węzeł nie może zostać usunięty i pojawia się błąd jądra "Busy inodes after unmount of ceph".
W jądrze Linux w funkcji btrfs_recover_relocation() występuje wyciek referencji do reloc_root podczas nieudanego odzyskiwania relokacji. Gdy ładowanie lub dodawanie kolejnego roota albo pierwszy commit transakcji zakończy się błędem, ścieżka out_unset nie zwalnia referencji trzymanych przez fs_root->reloc_root, co prowadzi do pozostawienia referencji. Poprawka utrzymuje tymczasowe referencje do fs rootów i zwalnia je w razie błędu.
W jądrze Linux w funkcji btrfs_dio_iomap_begin() występuje wyciek extent map przy bezpośrednim zapisie I/O do zakresu NOCOW. Gdy btrfs_create_dio_extent() zwróci błąd (np. przy nieudanej alokacji ordered extent), funkcja zwraca błąd bez zwolnienia wejściowej extent map. Poprawka sprawdza błąd przed zastąpieniem mapy i zwalnia ją w razie niepowodzenia.
W jądrze Linux w funkcji audit_del_rule() występuje błąd use-after-free przy automatycznym usuwaniu reguł fsnotify. Bezwarunkowe audit_put_tree() zakłada przypadek szablonu, przez co dla reguł mieszanych AUDIT_DIR i AUDIT_EXE zdarzenie autoremove zwalnia żywą referencję drzewa zainstalowanej reguły. Powtórzenie tego może zwolnić drzewo, gdy inna reguła wciąż je referencjonuje, prowadząc do dereferencji zwolnionej ścieżki. Poprawka przenosi zwolnienie tymczasowego drzewa do audit_rule_change().
W jądrze Linux w funkcji cifs_setsize() brakuje wywołania pagecache_isize_extended() przy rozszerzaniu pliku. Funkcja wywołuje truncate_pagecache(), ale pomija zerowanie końca strony obejmującej stary EOF, przez co brudne bajty w tym obszarze mogą zostać zapisane na serwerze i ujawnić nieaktualne dane w nowo rozszerzonym zakresie. Poprawka dodaje wywołanie pagecache_isize_extended() przed truncate_pagecache().
W jądrze Linux w funkcji cifs_file_set_size() występuje use-after-free. Gdy gałąź else znajdzie uchwyt pliku do zapisu przez find_writable_file(), pożycza tcon i server z uchwytu, próbuje wykonać RPC set_file_size(), a następnie zwalnia uchwyt przez cifsFileInfo_put(). Jeśli set_file_size() zawiedzie, wykonanie przechodzi do ścieżki opartej na ścieżce, która ponownie używa pożyczonego tcon i server, mimo że cifsFileInfo_put() mógł zwolnić tcon. Poprawka ustawia tcon = NULL po cifsFileInfo_put(), aby wymusić bezpieczną ścieżkę cifs_sb_tlink().
W kliencie CIFS jądra Linux funkcja cifs_remap_file_range() przy wywołaniu z len == 0 (klonowanie do końca pliku) oblicza efektywną długość jako różnicę i_size - off. Gdy off jest większe niż rozmiar pliku, wynik jest ujemny, co psuje pole ByteCount w żądaniu FSCTL_DUPLICATE_EXTENTS_TO_FILE i odwraca zakres w filemap_write_and_wait_range(). Istniejąca kontrola off >= i_size wykonywana jest dopiero po wysłaniu ioctl.
W kliencie CIFS jądra Linux funkcja cifs_do_truncate() wywoływana z cifs_open() przy O_TRUNC nie może użyć cifs_resize_file_locked() z powodu braku blokady i_rwsem, więc nie wykonuje prawidłowej zmiany rozmiaru cookie fscache. Poprawka dodaje wywołanie cifs_invalidate_cache() po cifs_setsize(), które unieważnia pamięć podręczną bez potrzeby trzymania i_rwsem.
W kliencie SMB (cifs.ko) jądra Linux występuje luka, w której zapis do pliku z ustawionym bitem setuid/setgid nie usuwał tego bitu na serwerze przy montowaniu z opcjami cifsacl, modefromsid lub rozszerzeniami POSIX/Unix. VFS zgłaszał żądanie wyczyszczenia bitu, ale sterownik cifs bezwarunkowo pomijał zmianę trybu (ATTR_MODE), przez co wyczyszczony tryb nie był przesyłany do serwera.
W kliencie SMB jądra Linux funkcja cifs_check_trans2() przy błędnej odpowiedzi wtórnej T2 (nieprawidłowy nagłówek SMB lub odrzucenie PDU przez check2ndT2()) powoduje, że handle_mid() nadpisuje mid->resp_buf nowym buforem, wyciekając bufor pierwotny i pozostawiając wiszące wskaźniki server->smallbuf/bigbuf. Prowadzi to do use-after-free, gdy wątek demultipleksera ponownie użyje zwolnionego bufora.
W kliencie SMB jądra Linux funkcja free_tgts() zwalnia wszystkie struktury z ce->tlist, ale pozostawia ce->tgthint wskazujący na jedną ze zwolnionych struktur cache_dfs_tgt. Jeśli wskaźnik nie zostanie zresetowany przed ponownym użyciem, dochodzi do use-after-free.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

