Podatności Linux kernel
10 407 znanych podatności CVE w Linux kernel, przetłumaczonych i ocenionych.
- CVE-2026-89498Niskie ryzyko· EPSS 7%
W systemie plików orangefs jądra Linux funkcja orangefs_devreq_write_iter() zwalnia op->downcall.trailer_buf przez vfree() przy niepowodzeniu copy_from_iter_full(), ale nie czyści wskaźnika przed goto Efault. Powoduje to podwójne zwolnienie tego samego wskaźnika po stronie readdir, gdy klient wyśle downcall z trailer_size większym niż dostarczone dane.
- CVE-2026-89497Wysokie
W systemie plików orangefs jądra Linux funkcja orangefs_prepare_cdm_array() rozmiaruje bufor słowa kluczowego za pomocą strcspn(cds_head, " "), ale parsuje je przez %s, który pomija wiodące białe znaki. Jeśli wpis debugowania klienta zaczyna się od spacji, alokacja może być za mała, a sscanf() zapisze poza buforem.
- CVE-2026-89491Niskie ryzyko· EPSS 11%
W jądrze Linux naprawiono podatność w module ocfs2/cluster, w funkcji o2hb_region_pin(). Funkcja ta była wywoływana z trzymaną blokadą spinlock o2hb_live_lock, jednocześnie wywołując śpiącą funkcję configfs_depend_item(), co powodowało błąd BUG przy włączonej opcji CONFIG_DEBUG_ATOMIC_SLEEP, inwersję kolejności blokad prowadzącą do zakleszczenia oraz wyciek licznika o2hb_dependent_users przy częściowym niepowodzeniu przypinania regionów.
- CVE-2026-89477Wysokie
W jądrze Linux występuje podatność typu NULL pointer dereference w implementacji SCTP, związana z zakończeniem żądania rekonfiguracji strumienia, które nie zostało jeszcze wysłane. Gdy żądanie jest już opublikowane w asoc->strreset_chunk, ale nie ma przypisanego transportu (chunk->transport == NULL), próba zatrzymania timera powoduje odwołanie do NULL i panikę jądra. Problem można wywołać lokalnie przez nieuprzywilejowany proces lub zdalnie przez spreparowany pakiet RECONF.
- CVE-2026-89476Wysokie
W jądrze Linux w stosie SCTP zbuforowany chunk RECONF może zawierać więcej niż jeden parametr żądania. Zduplikowana odpowiedź może ponownie przetworzyć to samo żądanie ADD_OUT, co powoduje dwukrotne cofnięcie licznika outcnt i jego niedomknięcie (underflow). Poprawka śledzi typy oczekujących żądań jako bity i ignoruje późniejsze odpowiedzi.
- CVE-2026-89475Niskie ryzyko· EPSS 11%
W jądrze Linux w sterowniku power: supply: bq24257 przerwanie STAT-pin jest zarządzane przez devm, więc pozostaje aktywne do momentu sprzątania po remove(). Funkcja remove() anuluje pracę bq->iilimit_setup_work, ale wątek obsługi przerwania może ją ponownie zaplanować i odwołać się do zwolnionej pamięci bq. Poprawka używa devm_delayed_work_autocancel() i rejestruje pracę przed żądaniem przerwania.
- CVE-2026-89474Niskie ryzyko· EPSS 6%
W jądrze Linux w sterowniku power: supply: bq256xx notyfikator USB-PHY kolejkuje usb_work, którego handler wywołuje power_supply_changed(bq->charger). Akcja reset devm rejestrowana jest przed zasilaczami, więc devm zwalnia bq->charger przed jej uruchomieniem, a zakolejkowana praca może odwołać się do zwolnionej pamięci. Poprawka rejestruje akcję reset po zasilaczach i inicjalizuje usb_work przed notyfikatorami.
- CVE-2026-89473Niskie ryzyko· EPSS 9%
W jądrze Linux w sterowniku power: supply: bq25890 funkcja bq25890_fw_probe() pozyskuje referencję do dodatkowego zasilacza przez power_supply_get_by_name(), ale nie zwalnia jej przy późniejszych błędach sondowania ani przy odłączaniu sterownika. Poprawka rejestruje akcję sprzątania zarządzaną przez urządzenie natychmiast po pozyskaniu referencji.
- CVE-2026-89472Wysokie
W jądrze Linux w module charger-manager (power: supply) występuje luka use-after-free. Regulatorzy są zwalniani (regulator_put) przed wyrejestrowaniem wpisów sysfs (power_supply_unregister), a jednocześnie wpisy sysfs są rejestrowane przed pozyskaniem regulatorów, co pozwala na wyścig i dostęp do zwolnionych uchwytów.
- CVE-2026-89471Wysokie
W jądrze Linux w sterowniku power: supply: cros_usbpd-charger funkcja cros_usbpd_charger_probe() odczytuje z EC dwie liczby portów i używa num_charger_ports jako granicy pętli wypełniającej tablicę ports[] o stałym rozmiarze 8 elementów. Brak walidacji względem EC_USB_PD_MAX_PORTS pozwala wadliwemu lub złośliwemu EC zgłosić wartość do 255, co powoduje zapis poza granicami tablicy (slab out-of-bounds write). Poprawka odrzuca liczbę portów większą niż rozmiar tablicy.
- CVE-2026-89470Wysokie
W jądrze Linux w sterowniku power: supply: cros_usbpd-charger funkcja sondowania iteruje na podstawie surowej liczby portów zwróconej przez kontroler EC. Jedynym sprawdzeniem jest porównanie z liczbą portów USB PD również zdefiniowaną przez EC, więc złośliwy EC może zwrócić niedokładną liczbę (do 255), powodując zapis poza granicami i uszkodzenie pamięci. Poprawka ogranicza liczbę portów do EC_USB_PD_MAX_PORTS.
- CVE-2026-89469Wysokie
W jądrze Linux w sterowniku power: supply: lp8727 funkcja lp8727_release_irq() anuluje pracę pchg->work przed zwolnieniem przerwania, więc przerwanie dostarczone w międzyczasie może ponownie uzbroić pracę przez wątek obsługi. Po powrocie z .remove warstwa devm zwalnia pchg, a lp8727_delayed_func() może wciąż działać i odwołać się do zwolnionej pamięci. Poprawka najpierw zwalnia przerwanie, a następnie anuluje pracę.
- CVE-2026-89468Niskie ryzyko· EPSS 6%
W jądrze Linux w sterowniku ładowarki lp8788-charger występuje błąd use-after-free podczas usuwania urządzenia. Funkcja lp8788_charger_remove() opróżnia kolejkę pracy przed wyrejestrowaniem przerwań IRQ, przez co wątek IRQ może zakolejkować pracę po zakończeniu flush_work(), a następnie praca ta odwołuje się do zwolnionej pamięci pchg.
- CVE-2026-89467Niskie ryzyko· EPSS 10%
W jądrze Linux w sterowniku qcom_battmgr występuje błąd use-after-free. Funkcja qcom_battmgr_pdr_notify() kolejkuje enable_work, gdy usługa PMIC GLINK startuje, a klient PMIC GLINK pozostaje na liście klientów do momentu zwolnienia przez devres, co pozwala powiadomieniu PDR wielokrotnie kolejkować pracę i uzyskać dostęp do zwolnionej pamięci battmgr.
- CVE-2026-89466Wysokie
W jądrze Linux w sterowniku qcom_battmgr funkcja qcom_battmgr_sc8280xp_strcpy() kopiuje ciągi znaków z firmware bez gwarancji terminatora, gdy firmware nie używa formatu Pascal. Pola model_number, serial_number i oem_info mogą nie być zakończone znakiem null, co powoduje odczyt poza granice bufora przy wyświetlaniu ich w przestrzeni użytkownika.
- CVE-2026-89465Wysokie
W jądrze Linux w sterowniku ładowarki rt9455 występuje błąd use-after-free. Podczas usuwania sterownika (rt9455_remove) kolejność anulowania zadań opóźnionych jest nieprawidłowa — batt_presence_work może zakolejkować max_charging_time_work po jego anulowaniu, co prowadzi do odwołania się do zwolnionej struktury rt9455_info. Problem występuje również w ścieżce błędu funkcji probe, gdy rt9455_hw_init() zawiedzie po zarejestrowaniu przerwania.
- CVE-2026-89464Niskie ryzyko· EPSS 6%
W jądrze Linux w sterowniku twl4030_charger występuje błąd use-after-free. Funkcja twl4030_bci_remove() nie anuluje dwóch workerów (bci->work i bci->current_worker), które odwołują się do struktury bci alokowanej przez devm, co może prowadzić do dostępu do zwolnionej pamięci po usunięciu urządzenia.
- CVE-2026-89463Niskie ryzyko· EPSS 11%
W jądrze Linux w sterowniku ucs1002 występuje błąd use-after-free podczas usuwania urządzenia. Sterownik nie ma funkcji remove, więc odłączenie odbywa się przez devm, ale devm zwalnia przerwanie alert IRQ bez anulowania opóźnionej pracy health_poll, która może następnie odwołać się do zwolnionej pamięci.
- CVE-2026-89462Niskie ryzyko· EPSS 6%
W jądrze Linux w sterowniku max17040 funkcje max17040_get_vcell() i max17040_get_soc() ignorują błędy zwracane przez regmap_read(). Gdy transfer I2C zawiedzie, niezainicjalizowana wartość rejestru jest konwertowana i raportowana do przestrzeni użytkownika jako prawidłowe napięcie lub stan naładowania, a worker może zastąpić buforowany stan naładowania błędną wartością.
- CVE-2026-89461Niskie ryzyko· EPSS 11%
W jądrze Linux w sterowniku max17040 występuje problem z synchronizacją anulowania pracy podczas suspend. Funkcja max17040_work() ponownie kolejkuje się po każdym odpytywaniu, a cancel_delayed_work() nie czeka na już uruchomiony callback, co może prowadzić do kontynuowania dostępu do układu paliwa po zakończeniu suspend.
- CVE-2026-89460Niskie ryzyko· EPSS 6%
W jądrze Linux na architekturze s390 podatność w podsystemie cpum_cf (licznik wydajności CPU) powoduje panikę jądra, gdy procesor jest włączany w trakcie działania polecenia perf stat. Struktura danych dla danego CPU nie jest inicjalizowana, jeśli CPU było offline w momencie tworzenia zdarzenia perf, co prowadzi do odwołania do wskaźnika NULL w funkcji cpumf_pmu_add().
- CVE-2026-89459Wysokie
W jądrze Linux na architekturze s390 makro MVIY_PERCPU() generuje wywołanie makra asemblera z argumentami łańcuchowymi rozdzielonymi spacjami, co w starszych wersjach binutils (przed 2.39) powoduje nieprawidłowe parsowanie i pominięcie instrukcji mviy. W rezultacie przerwana sekwencja per-CPU nie jest oznaczana w lowcore, a ścieżka powrotu z wyjątku nie może naprawić rejestru adresu per-CPU po migracji.
- CVE-2026-89458Niskie ryzyko· EPSS 7%
W jądrze Linux w sterowniku s390/dasd funkcja dasd_int_handler() oznaczała żądanie odczytu NRF nieprzydzielonego toru ESE jako zakończone sukcesem (DASD_CQR_SUCCESS) bez sprawdzenia wartości zwracanej przez ese_read(). Gdy dasd_eckd_ese_read() zwracało błąd przed wyzerowaniem bufora docelowego, warstwa blokowa otrzymywała niezerowane, niezinicjalizowane dane zamiast zer.
- CVE-2026-89457Niskie ryzyko· EPSS 7%
W jądrze Linux w sterowniku s390/dasd kilka procedur obsługi sysfs show/store wywołuje funkcję zwrotną dyscypliny, która odwołuje się do device->private. Podczas dasd_generic_set_online() dyscyplina jest przypisywana przed alokacją device->private przez check_device(), więc nieuprzywilejowany odczyt jednego z tych ogólnodostępnych atrybutów w tym oknie powoduje dereferencję wskaźnika NULL i panikę jądra.
- CVE-2026-89456Wysokie
W jądrze Linux w sterowniku s390/dasd funkcja dasd_default_erp_postaction() kopiuje stan czasu i urządzenia z zakończonego żądania ERP do żądania oryginalnego, ale pomija proc_bytes. Żądanie częściowo zakończone (odczyt ESE jeszcze nieprzydzielonego toru zwraca mniej bajtów niż żądano), a następnie odzyskane przez łańcuch ERP, traci długość częściowego ukończenia, przez co __dasd_cleanup_cqr() kończy całe żądanie zamiast zakolejkować resztę, zwracając wyzerowane dane dla nieodczytanej części.
- CVE-2026-89455Niskie ryzyko· EPSS 10%
W jądrze Linux w sterowniku PCI plda funkcja plda_pcie_irq_domain_deinit() usuwa pcie->event_domain przez irq_domain_remove(), ale poszczególne przerwania zdarzeń zmapowane z tej domeny są żądane przez devm_request_irq() w plda_init_interrupts(). Zwolnienie free_irq() dla przerwania zarządzanego przez devres jest odraczane do czasu po powrocie z probe()/remove(), więc irq_domain_remove() może zwolnić wewnętrzne dane domeny, zanim odroczone free_irq() zostanie wykonane, co prowadzi do dereferencji już zwolnionej domeny (use-after-free).
- CVE-2026-89454Niskie ryzyko· EPSS 10%
W jądrze Linux w sterowniku PCI plda funkcja plda_init_interrupts() inicjalizuje domeny przerwań i tworzy mapowania, ale nie cofa ich, gdy późniejszy krok zawiedzie. Jeśli platform_get_irq() lub którekolwiek irq_create_mapping() zawiedzie, domeny nigdy nie zostają zdeinicjalizowane, a port->intx_irq pozostaje zainicjalizowany, co prowadzi do wycieku domen przerwań.
- CVE-2026-89453Niskie ryzyko· EPSS 10%
W jądrze Linux w sterowniku iommu/amd funkcja iommu_call_iopf_notifier() wyszukuje requestera przez pci_get_domain_bus_and_slot(), co zwraca urządzenie PCI z zwiększonym licznikiem referencji. Ani ścieżka sukcesu iommu_report_device_fault(), ani ścieżka przerwania nie zwalniają tej referencji, więc każde obsłużone żądanie PPR powoduje wyciek referencji urządzenia PCI.
- CVE-2026-89452Wysokie
W jądrze Linux w sterowniku iommu/msm funkcja msm_iommu_probe() dodaje zarządzany przez devm obiekt IOMMU do qcom_iommu_devices przed dodaniem urządzenia sysfs IOMMU i zarejestrowaniem go w rdzeniu IOMMU. Jeśli iommu_device_sysfs_add() lub iommu_device_register() zawiedzie, obiekt pozostaje na liście qcom_iommu_devices, a rdzeń sterownika zwalnia alokację devm, pozostawiając wiszący wpis listy, który może być później dereferencjonowany.
- CVE-2026-89451Niskie ryzyko· EPSS 10%
W jądrze Linux w sterowniku iommu/sva funkcja iommu_attach_device_pasid() instaluje nowy uchwyt SVA w wyszukiwaniu PASID grupy, zanim iommu_sva_bind_device() zwróci wynik. Współbieżne bind może znaleźć i ponownie użyć ten sam uchwyt po zwolnieniu iommu_sva_lock. Pole handle->dev było inicjalizowane po zwolnieniu iommu_sva_lock, co pozostawia okno, w którym wyścigowy bind może zwrócić uchwyt z wciąż NULL wskaźnikiem dev, a następnie iommu_sva_unbind_device() może go dereferencjonować przez handle->dev->iommu_group.
- CVE-2026-89450Wysokie
W jądrze Linux w sterowniku iommu/tegra241-cmdqv funkcja tegra241_vintf_init_vsid() programuje dostarczony przez gościa vSID do pola SID_MATCH, którego pole VIRT_SID obejmuje bity [20:1] z bitem 0 jako flagą włączenia dopasowania, więc sprzęt dopasowuje tylko 20-bitowy Stream ID. Sprawdzenie zakresu odrzuca jedynie virt_sid > UINT_MAX, co dopuszcza wartość znacznie szerszą niż pole; zapis "virt_sid << 1 | 0x1" odrzuca wszystkie bity powyżej 20, więc virt_sid 0x80000000 staje się SID_MATCH = 0x1, prawidłowym dopasowaniem vSID 0, przez co wpis aliasuje niewłaściwy Stream ID. Ponieważ vdev->virt_id jest kontrolowane przez gościa, VMM może to wywołać.
- CVE-2026-89449Niskie ryzyko· EPSS 10%
W jądrze Linux występuje wyciek pamięci w funkcji iommu_mock_device_add(). Gdy wywołanie device_add() zakończy się niepowodzeniem, ścieżka błędu zwalnia tylko fwspec, pozostawiając zaalokowaną strukturę dev->iommu. Problem został naprawiony poprzez wywołanie dev_iommu_free() zamiast iommu_fwspec_free().
- CVE-2026-89447Niskie ryzyko· EPSS 12%
W jądrze Linux funkcja iommufd_access_notify_unmap() pomija dostęp wewnętrzny, ale najpierw wywołuje iommufd_lock_obj(), co przy sukcesie powoduje pominięcie iommufd_put_object() i wyciek referencji obiektu. Poprawka sprawdza dostęp wewnętrzny przed blokowaniem.
- CVE-2026-89446Niskie ryzyko· EPSS 10%
W jądrze Linux funkcja iommufd_take_all_iova_rwsem() pobiera referencję obiektu i blokadę zapisu przed zapisem IOAS do tablicy xarray; jeśli xa_store() zawiedzie, bieżący IOAS nie zostaje zwolniony, co prowadzi do wycieku. Poprawka zwalnia bieżący IOAS przed cofnięciem poprzednich wpisów.
- CVE-2026-89445Wysokie
W jądrze Linux selftest IOMMUFD TRIGGER_IOPF pożycza uchwyt attach z group->pasid_array bez synchronizacji z odłączeniem PASID, co przy równoczesnym iommu_report_device_fault() prowadzi do użycia zwolnionej pamięci (UAF). Poprawka dodaje iopf_rwsem w mock_dev do synchronizacji.
- CVE-2026-89444Niskie ryzyko· EPSS 11%
W jądrze Linux funkcja set_attribute() w dell-wmi-sysman wypełnia bufor żądania atrybutu BIOS hasłem administratora, a następnie zrzuca cały bufor przez print_hex_dump_bytes(), ujawniając hasło w logu jądra. Poprawka usuwa ten zrzut.
- CVE-2026-89443Wysokie
W jądrze Linux funkcje isst_if_get_perf_level_mask() i isst_if_get_base_freq_mask() używają poziomu podanego przez użytkownika jako indeksu do perf_levels[] bez walidacji, co umożliwia odczyt poza zakresem. Poprawka dodaje sprawdzenia zakresu i odrzuca wyłączone poziomy SST-PP.
- CVE-2026-89442Wysokie
W jądrze Linux funkcja isst_if_clos_assoc() waliduje socket_id przez '>' zamiast '>=', co pozwala na indeksowanie poza tablicę sst_inst[]; dodatkowo brak sprawdzenia NULL dla niepowiązanych pakietów prowadzi do dereferencji NULL. Poprawka odrzuca socket_id >= topology_max_packages() i NULL sst_inst.
- CVE-2026-89441Wysokie
W jądrze Linux sterownik mmc via-sdmmc nie anuluje pracy carddet_work przy usuwaniu urządzenia; praca już zakolejkowana może wykonać się po zwolnieniu hosta, powodując użycie zwolnionej pamięci. Poprawka anuluje carddet_work po zwolnieniu IRQ i przed anulowaniem finish_bh_work.
- CVE-2026-89440Wysokie
W jądrze Linux sterownik mmc via-sdmmc rejestruje i włącza przerwanie card-detect przed mmc_add_host(); jeśli mmc_add_host() zawiedzie, przerwanie pozostaje zarejestrowane i obsługuje zwolniony host, powodując użycie zwolnionej pamięci. Poprawka dodaje ścieżkę błędu, która wyłącza i zwalnia przerwanie oraz anuluje carddet_work.
- CVE-2026-89439Niskie ryzyko· EPSS 10%
W jądrze Linux w ISST brakowało sprawdzenia NULL dla isst_common.sst_inst[] przy nieudanym ładowaniu gniazda, co mogło prowadzić do dereferencji NULL. Poprawka dodaje sprawdzenie NULL dla spójności z innymi miejscami.
- CVE-2026-89438Niskie ryzyko· EPSS 10%
W jądrze Linux w sterowniku platform/x86 ISST brakowało walidacji identyfikatora logicznego CPU oraz poziomu CLOS ID używanych w funkcji zarządzania mocą rdzeni. Wartości przekraczające obsługiwane maksimum nie były odrzucane, mimo że służą do obliczania offsetu MMIO.
- CVE-2026-89437Niskie ryzyko· EPSS 6%
W jądrze Linux w sterowniku platform/x86 int1092 pamięć przydzielona dla device_mode_info w parse_package() nie była zwalniana w niektórych ścieżkach błędów funkcji sar_probe(). Powodowało to wyciek pamięci.
- CVE-2026-89436Wysokie
W jądrze Linux w sterowniku panasonic-laptop występuje błąd przepełnienia bufora poza granice tablicy pcc->sinf[]. Funkcja acpi_pcc_retrieve_biosdata() zapisuje wartość sentinela pod indeksem równym liczbie elementów pakietu SINF, co przy num_sifr równym tej liczbie powoduje zapis jednego elementu poza zaalokowaną tablicą (4-bajtowe przepełnienie sterty). Problem ujawnia się na sprzęcie, gdzie HKEY.SQTY zwraca 37, a pakiet HKEY.SINF() ma 38 elementów.
- CVE-2026-81018Niskie ryzyko· EPSS 5%
W jądrze Linux w sterowniku platform/x86 think-lmi obsługa wielu certyfikatów pozwala obiektowi uwierzytelniania systemu przechowywać pola ->signature i ->save_signature, które nie są zwalniane przy usuwaniu sterownika. Powoduje to wyciek pamięci.
- CVE-2026-81017Wysokie
W jądrze Linux w sterowniku platform/chrome sensorhub numer czujnika raportowany przez EC (in->sensor_num) nie był walidowany w cros_ec_sensorhub_ring_handler(). Wartość większa lub równa sensor_num prowadziła do odczytu i zapisu poza granicami tablicy batch_state[].
- CVE-2026-81016Wysokie
W jądrze Linux w sterowniku platform/x86/amd/pmc funkcja amd_stb_s2d_init() ignorowała wartości zwracane przez kilka poleceń SMU S2D oraz wartości S2D_PHYS_ADDR_LOW/HIGH. W przypadku błędu adres fizyczny pozostawał niezainicjalizowany i był przekazywany do devm_ioremap(), co mogło mapować adres fizyczny 0.
- CVE-2026-81015Wysokie
W jądrze Linux w sterowniku platform/x86/amd/pmc funkcja amd_pmc_probe() rejestrowała handler LPS0 s2idle oraz tworzyła katalog debugfs przed wywołaniem amd_stb_s2d_init(). Gdy ta ostatnia funkcja zawiodła, ścieżka błędu nie wyrejestrowywała handlera ani nie usuwała katalogu debugfs, co prowadziło do uszkodzenia listy i błędu jądra przy ponownym ładowaniu modułu.
- CVE-2026-81014Niskie ryzyko· EPSS 6%
W jądrze Linux w sterowniku platform/x86 hp-bioscfg funkcje sk_store() i kek_store() usuwały końcowy znak nowej linii przed alokacją bufora klucza, ale do hp_wmi_perform_query() przekazywały oryginalny rozmiar count zamiast length. Powodowało to odczyt jednego bajtu poza zaalokowanym buforem.
- CVE-2026-81013Niskie ryzyko· EPSS 7%
W jądrze Linux w sterowniku platform/x86 hp-bioscfg funkcja validate_password_input() obliczała length = strlen(buf) i sprawdzała buf[length - 1] bez uprzedniego upewnienia się, że length jest niezerowe. Zapis pustego łańcucha (samego '\n') do current_password lub new_password powodował odczyt buf[-1], czyli jednego bajtu przed alokacją sterty.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

