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 naprawiono błąd w kompilatorze BPF dla architektury x86 dotyczący rozwiązywania adresów per-CPU do rejestru rozszerzonego. Prefiks REX był budowany z użyciem REX.B zamiast REX.R, przez co bit wysokiego rejestru był gubiony, a adres per-CPU trafiał do niewłaściwego rejestru (np. R5 zamiast R8). Prowadziło to do wyłuskania niepoprawnego wskaźnika i paniki jądra.
W jądrze Linux naprawiono podatność w funkcji __bpf_get_stack. Bufor perf_callchain_entry zwracany przez get_perf_callchain() jest współdzielony per-CPU i nie jest chroniony przed ponownym użyciem po zwróceniu, więc program BPF z możliwością wywłaszczenia może zostać przełączony między pobraniem bufora a kopiowaniem, a inny wątek na tym samym CPU nadpisze trace->nr większą wartością. Powoduje to wyliczenie zbyt dużego copy_len i zapis poza zakresem bufora w memcpy() oraz w ścieżce build_id.
W jądrze Linux naprawiono podatność w mechanizmie BPF dotyczącą obliczania rozmiaru i indeksowania filtra Bloom na jądrach 32-bitowych. Gdy bitmapa osiąga przypadek fallback U32_MAX, błąd arytmetyczny powoduje zbyt małą alokację pamięci, a ujemne przesunięcia bitów pozwalają na zapis poza przydzielonym obszarem. Umożliwia to lokalne podniesienie uprawnień na 32-bitowym jądrze x86 przez proces z uprawnieniem CAP_BPF.
W jądrze Linux moduł dm-io przy żądaniach DM_IO_BIO odbudowywał bio docelowe poprzez kopiowanie biovec źródłowego, co przy niezgodnych z sektorem długościach wektorów (np. niezgodny bufor O_DIRECT) powodowało utratę fragmentu podsektora i zawieszenie I/O. Poprawka klonuje biovec źródła przez bio_alloc_clone() i remapuje na urządzenie docelowe, eliminując ręczne kopiowanie stron.
W jądrze Linux kody błędów BLK_STS_NOTSUPP i BLK_STS_INVAL nie powinny powodować awarii nogi (leg) w dm-raid1. Poprawka zmienia interfejs dm-io, aby raportował dwa bitmapy błędów: error_bits i unsup_bits, gdzie unsup_bits śledzi błędy nieobsługiwane, a dm-raid1 nie zawodzi nogi przy takich błędach. Naprawia to nieprawidłowe działanie przy niezgodnych wektorach bio na dm-raid1.
W jądrze Linux moduł dm-era zawiera wyciek pamięci bloku metadanych przy niepowodzeniu operacji take-snap. Funkcja metadata_take_snap() zwiększa licznik referencji superbloku i alokuje nowy blok cienia, ale jeśli późniejsze dm_sm_inc_block() zawiedzie, blok nie jest zwracany do mapy przestrzeni metadanych. Poprawka zwalnia klon przez dm_sm_dec_block() w ścieżkach błędów.
W jądrze Linux funkcja build_constructor_string() w module dm-raid1 nie rezerwuje miejsca na znak NUL kończący łańcuch po maksymalnie 20 cyfrach dziesiętnych wartości long long. Może to prowadzić do przepełnienia bufora w sprintf(). Poprawka rezerwuje dodatkowe miejsce na terminator NUL.
W jądrze Linux funkcja array_block_check() w module dm-array walidowała jedynie numer bloku i sumę kontrolną, nie sprawdzając pól strukturalnych nagłówka bloku. Złośliwe metadane z liczbą wpisów większą niż pojemność bloku powodują wyjście poza bufor dm-bufio podczas odczytu, co jest wywoływane przy aktywacji pamięci podręcznej dm-cache.
W jądrze Linux funkcja array_block_check() w dm-array porównuje nagłówek tylko sam ze sobą, więc blok o value_size 4 i max_entries 1018 przechodzi walidację. Wskazanie korzenia mapowań dm-cache na blok podpowiedzi powoduje, że element_at() operuje krokiem 8 bajtów na 4-bajtowych wpisach i wychodzi poza 4096-bajtowy blok.
W jądrze Linux sterownik cpufreq apple-soc nie usuwał tabel OPP w niektórych ścieżkach błędów i używał niewłaściwego pomocnika dev_pm_opp_remove_all_dynamic() do czyszczenia tabel OPP wczytywanych z firmware. Poprawka używa pomocnika cpumask OPP po wypełnieniu maski CPU polityki oraz sparowanego pomocnika usuwania w ścieżkach błędów i w apple_soc_cpufreq_exit().
W jądrze Linux funkcja fwctl_cmd_rpc() kopiuje cmd->in_len bajtów do bufora, ale wywołanie zwrotne CXL cxlctl_fw_rpc() ignoruje in_len i nie sprawdza kontrolowanego przez użytkownika op_size. Przy małym in_len i dużym op_size pierwszy memcpy() czyta poza bufor, a dane są wysyłane do urządzenia; zbyt duży op_size może doprowadzić do oops jądra.
W jądrze Linux notyfikator MCE dla CXL był rejestrowany per urządzenie pamięci i przechowywany w struct cxl_memdev_state, mimo że potrzebuje tylko stanu regionu. Powodowało to problemy z czasem życia obiektów prowadzące do dereferencji NULL i use-after-free w procedurze obsługi MCE. Poprawka przenosi notyfikator do struct cxl_region i rejestruje go z cxl_region_probe() tylko dla regionów z rozszerzonym liniowym cache.
W jądrze Linux występuje podatność use-after-free w funkcji rfcomm_security_cfm() w podsystemie Bluetooth RFCOMM. Funkcja przegląda listę sesji i DLC bez blokady rfcomm_mutex, przez co wątek krfcommd może jednocześnie zwolnić tę samą sesję i jej DLC. Prowadzi to do odczytu zwolnionej pamięci (KASAN: slab-use-after-free).
W jądrze Linux funkcja kho_preserved_memory_reserve() oblicza rozmiar zachowania jako 1 << (order + PAGE_SHIFT), gdzie '1' jest 32-bitową liczbą całkowitą, więc przesunięcie działa tylko do 31 bitów. Zachowania większe niż 2 GiB, możliwe np. przez kho_preserve_pages() używane przez memblock reserve_mem, powodują niezdefiniowane zachowanie.
W jądrze Linux shrinker jbd2 zaliczał do budżetu skanowania nr_to_scan tylko pomyślnie zwolnione bufory checkpointów, więc zajęte bufory nie zużywały budżetu. Przy dużej liście checkpointów złożonej głównie z zajętych buforów shrinker mógł przeskanować całą listę trzymając journal->j_list_lock, powodując długie blokady i soft lockupy lub RCU stalls.
W jądrze Linux funkcja journal_shrink_one_cp_list() pomija zajęte bufory checkpointów przy wywołaniu z JBD2_SHRINK_BUSY_SKIP, a instrukcja continue pomija też sprawdzenie need_resched() na końcu pętli. Gdy lista checkpointów zawiera głównie zajęte bufory, shrinker może przejść całą listę trzymając journal->j_list_lock mimo żądania przeplanowania, powodując soft lockupy lub RCU stalls.
W jądrze Linux w trybie collect_md funkcja ipip_tunnel_rcv() zwraca 0 bez zwolnienia skb, gdy ip_tun_rx_dst() nie zdoła zaalokować metadata_dst. Ponieważ ipip_rcv() i mplsip_rcv() są zarejestrowane jako handlery xfrm_tunnel, tunnel4_rcv() i tunnelmpls4_rcv() interpretują zero jako 'pakiet skonsumowany' i również go nie zwalniają, co powoduje wyciek skb.
W jądrze Linux występuje podatność use-after-free w ścieżce przekazywania pakietów multicast IPv4/IPv6. Gdy pakiet multicast nie jest dostarczany lokalnie, skb zachowuje przypisanie skb->sk ustawione przez bpf_sk_assign() lub wczesny demux UDP, mimo że referencja do gniazda nie jest gwarantowana. Po zniszczeniu gniazda późniejsze zwolnienie skb wywołuje sock_pfree() i odwołuje się do nieaktualnego wskaźnika skb->sk.
W jądrze Linux funkcja ip6_tnl_xmit() używa skb_realloc_headroom(), która zastępuje skb będący własnością wywołującego i zachowuje nowy skb tylko w zmiennej lokalnej. Jeśli po realokacji wystąpi błąd (np. odrzucenie enkapsulacji w tunelach collect_md lub błąd ip6_tnl_encap()), wywołujący nadal posiada wskaźnik do oryginalnego skb, co prowadzi do podwójnego zwolnienia skb.
W jądrze Linux funkcja ip6gre_tnl_link_config_route() nieprawidłowo dodaje długość nagłówka sprzętowego urządzenia niższego warstwy do dev->hard_header_len dla tuneli NBMA ip6gre. Powoduje to błędne obliczenie długości nagłówka sprzętowego tunelu, co może prowadzić do problemów z transmisją pakietów.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

