CVE-2026-93228
KrytyczneCVSS 9.1Streszczenie
W jądrze Linux wykryto podatność w module svcrdma (NFS/RDMA serwer). Zdalny klient może wysłać chunk Write lub Reply z polem segcount równym zero, co przechodzi walidację w xdr_check_write_chunk() i powoduje dodanie zdegenerowanego chunka (ch_segcount == 0) do list rc_write_pcl lub rc_reply_pcl. Wcześniejsza poprawka uczyniła pcl_for_each_segment() odpornym na segcount 0, ale problem nadal jest istotny jako obrona w głąb.
Ocena ryzyka
Podatność może prowadzić do nieprawidłowego przetwarzania danych przez serwer NFS/RDMA i potencjalnego wpływu na stabilność usługi. Choć obecnie nie powoduje bezpośredniego uszkodzenia pamięci, przyszłe zmiany w kodzie mogą uczynić ją groźniejszą.
Rekomendacja
Zaktualizuj jądro Linux do wersji zawierającej poprawkę odrzucającą chunki Write/Reply z segcount 0 na etapie dekodowania. Jeśli aktualizacja nie jest możliwa, rozważ ograniczenie dostępu do usługi NFS/RDMA zaufanym klientom.
Inne podatności w Linux kernel
Zobacz wszystkie- CVE-2026-97521Nieznane
W jądrze Linux naprawiono podatność w gfs2: gfs2_quota_init() sprawdza duplikaty identyfikatorów zmian kwot, trzymając qd_lock i bitlock zasobnika hashy kwot. Ta ścieżka używała gfs2_qd_search_bucket(), która pobiera referencję lockref przez lockref_get_not_dead(). Na PREEMPT_RT może to spać, co nie jest dozwolone pod bitlockiem zasobnika, wywołując 'sleeping function called from invalid context'. Poprawka używa wyszukiwania bez referencji w tej ścieżce i kontynuuje obsługę duplikatów bez pobierania lockref. Refaktoryzuje gfs2_qd_search_bucket(), aby opierać się na pomocniku bez referencji, tak aby przechodzenie pozostało w jednym miejscu.
- CVE-2026-97520Wysokie
W jądrze Linux naprawiono podatność w gfs2: przeniesiono inkrementację iteratora qc w pętli gfs2_quota_init() z ciała pętli do wyrażenia inkrementacji pętli for. To sprawia, że postęp iteratora jest jawny i unika mieszania przesuwania wskaźnika z obsługą duplikatów w ciele pętli.
- CVE-2026-97519Nieznane
W jądrze Linux naprawiono podatność w drm/xe: w xe_devcoredump_snapshot_free() ss->gt może być NULL, gdy zrzut nie został w pełni wypełniony (np. gdy czyszczenie jest wywoływane bez wcześniejszego przechwycenia). Zabezpieczono wywołanie xe_guc_capture_put_matched_nodes() za pomocą IS_ERR_OR_NULL(), aby zapobiec wyłuskaniu null. W xe_devcoredump_free() praca odroczona jest kolejkowana tylko wtedy, gdy zrzut jest przechwycony, więc zabezpieczono cancel_work_sync() sprawdzeniem coredump->captured.
- CVE-2026-97518Nieznane
W jądrze Linux naprawiono podatność w cfg80211: odrzucanie duplikatów wpisów w cipher_suites w wiphy. Duplikaty nie opisują żadnej dodatkowej zdolności, ale cfg80211 je akceptuje, pozostawiając konsumentom radzenie sobie z nimi. Kod WEXT dodaje długość klucza WEP dla każdego wpisu WEP, co może przepełnić stałą tablicę iw_range::encoding_size zwracaną przez SIOCGIWRANGE. Poprawka odrzuca duplikaty w wiphy_register(), co powoduje wczesny błąd -EINVAL dla nieprawidłowych opisów wiphy.
- CVE-2026-97517Nieznane
W jądrze Linux naprawiono podatność w nl80211: odrzucanie beaconów z nieprawidłowym elementem HE operation. Element HE operation musi być nie tylko dłuższy niż część stała, ale także mieć odpowiedni rozmiar dla części zmiennej wewnątrz. Dodano sprawdzenie tego.
- CVE-2026-97516Nieznane
W sterowniku rtw88 doszło do wyłuskania pustego wskaźnika w funkcji rtw_fw_adaptivity_result(). Na urządzeniach z układem 8821CE, które nie definiują pola edcca_th, kernel wywołuje błąd oops. Poprawka dodaje sprawdzenie na NULL przed wyłuskaniem, zapobiegając awarii.
- CVE-2026-97515Nieznane
W sterowniku i3c svc dla NPCM845 wystąpił problem z fałszywym zdarzeniem SLVSTART, które powoduje burzę przerwań. Po emisji warunku STOP kontroler zgłasza nowe zdarzenie, tworząc pętlę i potrafiąc zawiesić procesor. Poprawka czyści bit stanu SLVSTART po wykonaniu STOP, przerywając pętlę.
- CVE-2026-97514Nieznane
W sterowniku media chips-media wave5 wykryto problem z blokadą w funkcji handle_dynamic_resolution_change. Wywołanie w initialize_sequence nieprawidłowo nie uzyskuje blokady. Ponadto funkcje v4l2_ctrl_find i s_ctrl mogą spać, więc nie powinny być wywoływane z trzymaną blokadą. Poprawka zapamiętuje wartość fbc_buf_count i aktualizuje sterowanie po zwolnieniu blokady.
- CVE-2026-97513Wysokie
W sterowniku chips-media wave5 występuje ryzyko użycia po zwolnieniu (use-after-free) w momencie usuwania instancji z listy. Wątek IRQ może uzyskać blokadę między zwolnieniem m2m_ctx a jego usunięciem, co prowadzi do dereferencji pustego wskaźnika.
- CVE-2026-97512Nieznane
W sterowniku SPI Qualcomm QSPI stwierdzono niekompletne zarządzanie błędami w trybie runtime PM. W trakcie zawieszania lub wznawiania system może pozostać w niespójnym stanie, prowadząc do braku równowagi zegarów i zasilania. Poprawka zmienia kolejność operacji i dodaje odpowiednie sprawdzanie błędów z czyszczeniem zasobów.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: svcrdma: Reject Write/Reply chunks with segcount 0 A peer can send a Write or Reply chunk whose segcount field is zero. xdr_check_write_chunk() only rejects segcount > rc_maxpages, so zero passes the range check, and xdr_inline_decode(stream, 0) returns the current (non-NULL) cursor without advancing. The function returns true and pcl_alloc_write() then links a struct svc_rdma_chunk with ch_segcount == 0 onto rc_write_pcl or rc_reply_pcl. An earlier patch in this series made pcl_for_each_segment() safe for ch_segcount == 0, so this no longer drives the memory walk it used to. Rejecting the malformed frame at the decode boundary is still worthwhile as defense in depth: it keeps degenerate zero-segment chunks off the parsed chunk lists entirely, so any future consumer that walks ch_segments directly cannot observe one, and it makes the zero-floor easy to backport to trees where the macro change is more intrusive. RFC 8166 has no meaning for a Write/Reply chunk that describes no remote buffer, so no legitimate client is affected. xdr_check_reply_chunk() funnels Reply chunks through xdr_check_write_chunk() and inherits the same rejection. pcl_alloc_write() also links each chunk onto the parsed chunk list before filling its segment array. If a future change weakens the segcount-0 rejection, an incomplete chunk is visible to consumers during the fill loop. Reorder so that list_add_tail() follows the segment fill loop, ensuring only fully-populated chunks appear on the list.

