CVE-2026-98225
Niskie ryzyko· EPSS 5%Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 5 - wyżej niż 5% wszystkich znanych CVE
Streszczenie
W jądrze Linux występuje błąd w mechanizmie shrinkerów, który ujawnia się przy włączonej opcji cgroup.memory=nokmem. W takiej konfiguracji funkcja shrinker_memcg_alloc() nie przydziela identyfikatora, przez co shrinker->id pozostaje zerem i jest błędnie traktowany jako prawidłowy indeks bitu. Prowadzi to do ostrzeżenia WARN_ON_ONCE w set_shrinker_bit() przy pierwszym THP umieszczonym w cgroup.
Ocena ryzyka
Podatność powoduje jedynie ostrzeżenie w logach jądra i nie prowadzi do uszkodzenia pamięci ani utraty danych, ponieważ odczyt poza zakresem jest blokowany przez WARN_ON_ONCE(). Ryzyko dla organizacji jest niskie — głównie zaśmiecanie logów i potencjalne mylenie przy diagnozowaniu problemów.
Rekomendacja
Zaktualizuj jądro Linux do wersji zawierającej poprawkę, która zeruje shrinker->id przed zwróceniem w przypadku cgroup.memory=nokmem. Jeśli aktualizacja nie jest możliwa, rozważ wyłączenie opcji cgroup.memory=nokmem lub monitoruj logi pod kątem powtarzających się ostrzeżeń z mm/shrinker.c.
Inne podatności w Linux kernel
Zobacz wszystkie- CVE-2026-99216Nieznane
W jądrze Linux w sterowniku Hyper-V (hv) występuje błąd polegający na wymuszaniu stanu DISCONNECTED przed wywołaniem vmbus_disconnect(). Powoduje to, że vmbus_initiate_unload() nie odłącza połączenia VMBus, ponieważ sprawdza on stan CONNECTED, w wyniku czego host Hyper-V może nadal wysyłać komunikaty lub przerwania VMBus.
- CVE-2026-99215Nieznane
W jądrze Linux w podsystemie power supply występuje luka use-after-free. Jeśli zasilacz zostanie wyrejestrowany (power_supply_unregister) w trakcie wykonywania callbacku external_power_changed(), sterownik może zwolnić dane, do których callback nadal próbuje uzyskać dostęp, co prowadzi do awarii jądra (NULL pointer dereference).
- CVE-2026-99214Nieznane
W jądrze Linux w sterowniku drm/vc4 dla HDMI występuje problem z kolejnością włączania Packet RAM. Gdy dźwięk jest wyzwalany przez obsługę HPD przed przywróceniem obrazu, funkcja vc4_hdmi_write_infoframe() może próbować zapisać infoframe przy wyłączonym Packet RAM, co powoduje ostrzeżenie jądra (splat). Poprawka przenosi włączanie/wyłączanie Packet RAM do hooków Runtime PM.
- CVE-2026-99213Nieznane
W podsystemie vsock jądra Linux przejście ze stanu TCP_ESTABLISHED do TCP_CLOSING przy odebraniu OP_RST może wyścignąć się z pętlą connect. Reset gniazda wciąż obecnego w connected_table może prowadzić do uszkodzenia pamięci, w tym podwójnego dodania do listy i błędu jądra.
- CVE-2026-99212Nieznane
W module net/rds jądra Linux funkcja rds_rdma_cm_event_handler_cmn() zwraca wynik rdma_resolve_route() bezpośrednio do rdma_cm przy zdarzeniu RDMA_CM_EVENT_ADDR_RESOLVED. Synchroniczny błąd powoduje zniszczenie identyfikatora ic->i_cm_id, który nadal jest używany przez RDS, co prowadzi do użycia zwolnionego identyfikatora przy zamykaniu połączenia.
- CVE-2026-99211Nieznane
W podsystemie netlink jądra Linux filtry gniazd mogą używać SKF_NET_OFF i SKF_LL_OFF do odczytu względem nagłówków sieciowych i MAC skb. Producenci netlink mogą rezerwować headroom bez resetowania tych nagłówków, co pozwala filtrowi odbierającego gniazda odczytać dane sprzed zainicjowanej wiadomości i ujawnić zawartość pamięci.
- CVE-2026-99210Nieznane
W sterowniku accel/rocket jądra Linux funkcja rocket_probe() zapisuje wynik rocket_device_init() w globalnym wskaźniku rdev przed sprawdzeniem, czy jest to wskaźnik błędu. Przy niepowodzeniu rdev pozostaje jako ERR_PTR, a późniejsza próba może pominąć inicjalizację i wyłuskać wskaźnik błędu przy odczycie rdev->num_cores.
- CVE-2026-99209Nieznane
W sterowniku drm/xe jądra Linux funkcja xe_evict_flags() odczytuje tbo->resource->mem_type, ale bufor BO może trafić do eksmisji bez ttm.resource, np. importowany dma-buf, którego zasób zwolniono podczas rozbierania. Prowadzi to do wyłuskania wskaźnika NULL i błędu jądra.
- CVE-2026-99208Nieznane
W sterowniku drm/xe/oa jądra Linux bufory BO typu ttm_bo_type_kernel nie są gwarantowanie zerowane przy alokacji i mogą zawierać dane z wcześniej zwolnionych stron. Ponieważ bufor OA jest mapowalny przez przestrzeń użytkownika, może to ujawnić nieaktualną zawartość pamięci jądra.
- CVE-2026-99207Nieznane
W jądrze Linux w podsystemie scsi: target funkcja target_do_delayed_work() pobierała blokadę delayed_cmd_lock za pomocą zwykłego spin_lock(), nie wyłączając przerwań, podczas gdy wszystkie inne miejsca używają spin_lock_irqsave(). Odkąd komendy mogą być kończone w kontekście przerwania (complete_type=1 z direct_compl_supp), może to prowadzić do zakleszczenia, gdy ukończenie komendy trafi na ten sam CPU, na którym work item trzyma blokadę.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: mm/shrinker: fix bogus set_shrinker_bit() with cgroup.memory=nokmem With cgroup.memory=nokmem, shrinker_memcg_alloc() bails out early and never allocates an id, so shrinker->id keeps the 0 it got from the kzalloc() in shrinker_alloc(). __list_lru_init() then copies that 0 into lru->shrinker_id, where it looks like a valid bit index. Nothing calls expand_shrinker_info() on nokmem either, so shrinker_nr_max stays 0 and every memcg ends up with an empty map (map_nr_max == 0). deferred_split_folio() hands a real memcg to __list_lru_add() regardless of whether the lru is memcg aware, so the first THP queued in a cgroup does set_shrinker_bit(memcg, nid, 0) and trips the bounds check: WARNING: mm/shrinker.c:212 at set_shrinker_bit+0x7d/0x90, CPU#126 Call Trace: <TASK> deferred_split_folio+0x18c/0x220 map_anon_folio_pmd_nopf+0xdd/0x130 map_anon_folio_pmd_pf+0x14/0xb0 do_huge_pmd_anonymous_page+0x1a1/0x620 __handle_mm_fault+0xea9/0x10d0 handle_mm_fault+0xe5/0x320 do_user_addr_fault+0x1cc/0x870 exc_page_fault+0x81/0x1b0 asm_exc_page_fault+0x27/0x30 </TASK> Harmless, the WARN_ON_ONCE() is what keeps the out of bounds unit[] read from happening, but the id should not look valid in the first place. Clear it before returning. Two other spots could paper over this: drop the id in __list_lru_init() when nokmem turns memcg_aware off, or make deferred_split_folio() pass NULL like list_lru_add_obj() does. Both leave shrinker->id lying around for the next caller, so fix it where the id is handed out.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

