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.
Błąd w liczeniu pakietów non-AQL dla stacji MLO w sterowniku mt76. Funkcja nadpisuje wcid przekazany przez sterownik, co powoduje, że licznik jest aktualizowany na niewłaściwym wcid. Po przekroczeniu limitu scheduler może trwale zablokować obsługę stacji.
W sterowniku mt7996 brakuje walidacji pola band_idx w deskryptorze RX. Pole (2 bity) może być nieprawidłowe i powodować dostęp poza zakres tablicy phys[] lub odwołanie do NULL-a, co może prowadzić do awarii.
W sterowniku mt7915 występuje wyścig przy czyszczeniu maski wcid w funkcji remove_interface. Maska jest czyszczona bez trzymania mutexa i przed wyczyszczeniem wskaźnika RCU, co może prowadzić do wycieku lub ponownego przydzielenia wcid, a nawet jego usunięcia.
W sterowniku mt7915 występuje niedomiar (underflow) przy obliczaniu liczby strumieni przestrzennych. Jeśli mapa MCS nie zawiera żadnych wspieranych strumieni, funkcja zwraca wartość 255, która jest zapisywana do pól beamforming w firmware.
W sterowniku mt76 występuje wyścig w recyklingu buforów RXDMAD_C. Te bufory pochodzą z pul stron powiązanych z innym NAPI, co powoduje, że bezpośredni recykling może kolidować z właścicielem NAPI, prowadząc do błędów.
W sterowniku mt7996 występuje błąd w przeglądaniu listy TLV w funkcji mcu_get_chip_config. Pętla zwiększa pozycję o długość TLV bez minimalnej wartości, co może prowadzić do nieskończonej pętli przy zerowej długości, a także odczyt poza zakresem.
W sterownikach mt76 funkcje mmio_write_copy i mmio_read_copy iterują do ALIGN(len,4), co dla długości niebędącej wielokrotnością czwórki powoduje odczyt poza źródłem lub zapis poza celem.
W jądrze Linux w funkcji mt7915_add_interface() sterownika wifi mt76 występuje błąd braku wycofania zmian przy niepowodzeniu dodawania interfejsu. Gdy alokacja mt76_wcid_alloc() się nie powiedzie, funkcja zwraca błąd bez wyczyszczenia ustawionych bitów vif_mask/omac_mask, bez usunięcia wcześniej dodanych informacji o urządzeniu firmware i bez wyzerowania wskaźnika monitor_vif. Ponieważ mac80211 nie wywołuje remove_interface() po nieudanym dodaniu, indeksy i wpis firmware wyciekają trwale, a testmode może odwołać się do nieaktualnego wskaźnika monitor_vif.
W jądrze Linux w sterowniku wifi mt76 (mt7996) funkcja mt7996_mac_reset_work() zatrzymywała wątek tx i wyłączała NAPI RX/TX przed pobraniem muteksu dev->mt76.mutex. Ponieważ mt76_worker_disable()/_enable() nie są zliczane referencyjnie, a __mt76_set_channel() przełącza ten sam wątek i bit MT76_RESET pod muteksem, wyścig między obsługą SER L1 a zmianą kanału mógł pozostawić wątek wznowiony i bit MT76_RESET wyczyszczony podczas resetowania pierścieni DMA, uszkadzając deskryptory lub tokeny.
W jądrze Linux w sterowniku wifi mt76 (mt7996) funkcja mt7996_mcu_beacon_cntdwn() emituje dwa wpisy bss_bcn_cntdwn_tlv (odliczanie CSA i BCC przerwania CCA), ale stała MT7996_BEACON_UPDATE_SIZE rezerwowała miejsce tylko na jeden. Przy włączonym MBSSID i niemal maksymalnym szablonie beacon dodatkowe 8 bajtów mogło przekroczyć MT7996_MAX_BSS_OFFLOAD_SIZE i wywołać skb_over_panic().
W jądrze Linux w sterownikach wifi mt76 oba sterowniki anulowały dump_work przy wyrejestrowaniu urządzenia, ale pozostawiały reset_work i rc_work do opróżnienia dopiero przez destroy_workqueue() w mt76_free_device(), które uruchamia się po wyrejestrowaniu hw i zatrzymaniu sprzętu. reset_work uruchomiony w tym oknie wywołuje ieee80211_restart_hw() i ponownie uzbraja mac_work na wyrejestrowanym hw, a rc_work dotyka stanu stacji będącej w trakcie niszczenia.
W jądrze Linux funkcja acpi_processor_driver_init() rejestruje notyfikator polityki cpufreq przed zarejestrowaniem sterownika ACPI processor i skonfigurowaniem stanu hotplug CPU. Jeśli driver_register() lub cpuhp_setup_state() zawiedzie, ścieżka błędu wyrejestrowuje tylko sterownik ACPI processor i sterownik idle, pozostawiając notyfikator cpufreq zarejestrowany mimo niepowodzenia inicjalizacji.
W jądrze Linux w sterownikach MDP4/MDP5 dla układów graficznych MSM podwójne niszczenie stanu KMS podczas nieudanej inicjalizacji prowadzi do użycia po zwolnieniu (use-after-free). Błąd występuje, gdy funkcja kms_init() zawiedzie, a sterownik sam czyści stan, a następnie wspólna ścieżka błędów robi to ponownie.
W jądrze Linux w sterowniku drm/msm/dsi wywołanie dev_pm_opp_set_rate(0) usuwa głos określony w required-opps, ale nie zatrzymuje faktycznie zegara, przez co działa on bez niezbędnego wsparcia zasilania. Poprawka usuwa to jawne wywołanie; każde miejsce wywołania ops->link_clk_disable() jest poprzedzone pm_runtime_put(), więc głos zasilania zostanie wycofany, jeśli uzna się to za bezpieczne.
W jądrze Linux w sterowniku wifi ath11k funkcja ath11k_service_ready_ext_event() może alokować svc_rdy_ext.mac_phy_caps podczas parsowania TLV. Jest to alokacja tymczasowa zwalniana na ścieżce sukcesu, ale nie na ścieżce błędu — jeśli parsowanie powiedzie się na tyle, by zaalokować mac_phy_caps, a następnie zawiedzie na późniejszym TLV, alokacja wycieka.
W jądrze Linux regulator_init_complete_work używa system_wq (nieodmrażalnego) przez schedule_delayed_work(), co pozwala mu działać równolegle z zawieszeniem systemu. Praca ta uruchamia się ~30 s po starcie, aby wyłączyć nieużywane regulatory przez I2C; gdy wyścig z PM suspend nastąpi, adapter I2C może być już zawieszony, co wywołuje ostrzeżenie -ESHUTDOWN w __i2c_transfer().
W jądrze Linux btf_distill_func_proto() buduje model funkcji używany dla trampolin fentry/fexit/fmod_ret/fsession i struct_ops, akceptując 16-bajtową wartość zwracaną __int128 od czasu wprowadzenia trampoliny. Trampolina BPF zachowuje jednak tylko 8 bajtów wartości zwracanej (RAX/R0), więc dla typów dołączenia czytających wartość zwracaną (fexit, fmod_ret, fsession i warianty _multi oraz struct_ops) druga połowa nie jest zapisywana ani przywracana, co uszkadza wartość widzianą przez rzeczywistego wywołującego.
W jądrze Linux funkcja btf_distill_func_proto() akceptuje argumenty funkcji do 16 bajtów, więc 128-bitowy typ __int128 trafia do trampoliny x86 z arg_size równym 16. Obecna implementacja zakłada jednak, że argument __int128 wymaga tylko jednego rejestru, przez co obszar zapisu rejestrów jest niedoszacowany, a save_args() nadpisuje sąsiednie sloty stosu.
W sterowniku wifi mt76 (mt7915) przepływ TWT jest dodawany do dev->twt_list przed wysłaniem umowy do firmware, ale ścieżka błędu pozostawia go na liście, mimo że flowid_mask nie jest ustawiany. Slot przepływu może zostać ponownie użyty i wyzerowany, gdy wciąż znajduje się na liście, co uszkadza twt_list, a usunięcie stacji pozostawia wiszący wpis.
W sterowniku wifi mt76 (mt7996) funkcja mt7996_mac_reset_vif_iter() kolejkuje niedomyślne linki vif do kfree_rcu, podczas gdy dev->wcid[] wciąż przechowuje wskaźniki do wcid osadzonego w każdym zwalnianym linku. Następnie mt76_reset_device() dereferencjonuje te wpisy i uruchamia mt76_wcid_cleanup() na zwolnionej pamięci, jeśli upłynie okres karencji.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

