CVE-2026-74601
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 3 - wyżej niż 3% wszystkich znanych CVE
Streszczenie
W jądrze Linux wykryto podatność w mechanizmie ring-buffer, gdzie funkcja ring_buffer_swap_cpu() może zamienić bufory per-CPU w trakcie trwającej operacji zapisu. Licznik committing może chwilowo spaść do zera, co pozwala na niebezpieczną zamianę buforów i prowadzi do niespójności stanu oraz ostrzeżenia RB_WARN_ON. Poprawka zastępuje sprawdzanie licznika kontrolą current_context, która jest ustawiana na początku operacji i pozostaje ważna przez cały czas jej trwania.
Ocena ryzyka
Podatność może prowadzić do niespójności danych w buforach pierścieniowych, co może skutkować awarią systemu (panic) lub nieprzewidywalnym zachowaniem, szczególnie w środowiskach używających tracingu. Atakujący lokalny mógłby potencjalnie wykorzystać ten błąd do destabilizacji systemu.
Rekomendacja
Zaleca się natychmiastowe zastosowanie oficjalnej łatki od dostawcy jądra Linux oraz aktualizację systemu do wersji zawierającej poprawkę. Należy również monitorować biuletyny bezpieczeństwa dystrybucji w celu uzyskania informacji o dostępnych aktualizacjach.
Inne podatności w Linux kernel
Zobacz wszystkie- 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-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ę.
- CVE-2026-99205Nieznane
W jądrze Linux w funkcji sched_change_end() występuje wyścig z __sched_setscheduler() dla zadań zakolejkowanych, ale nieuruchomionych. Po zmianie klasy zadania (np. z SCHED_OTHER na SCHED_RR) wskaźnik rq->next_class nie jest aktualizowany, a wskaźnik potrzeby przeplanowania nie jest ustawiany, co prowadzi do bezczynności CPU mimo obecności gotowego do uruchomienia zadania.
- CVE-2026-99200Nieznane
W jądrze Linux sterownik sieciowy hisi_femac (net: hisilicon) przypisuje netdev_ops dopiero po podłączeniu PHY. Gdy włączone jest CONFIG_NET_SHAPER, phy_attach_direct() odczytuje niezainicjowane netdev_ops, co powoduje panikę jądra z powodu dereferencji NULL.
- CVE-2026-99199Nieznane
W jądrze Linux sterownik hip04_eth (net: hisilicon) wywołuje of_phy_connect() przed przypisaniem ndev->netdev_ops. Przy włączonym CONFIG_NET_SHAPER phy_attach_direct() odczytuje niezainicjowane netdev_ops, powodując panikę jądra z dereferencją NULL.
- CVE-2026-99198Nieznane
W jądrze Linux sterownik owl_emac (net: ethernet: actions) wywołuje owl_emac_phy_init(), która podłącza PHY, przed przypisaniem netdev->netdev_ops. Przy włączonym CONFIG_NET_SHAPER phy_attach_direct() odczytuje niezainicjowane netdev_ops, powodując panikę jądra z dereferencją NULL.
- CVE-2026-99197Nieznane
W jądrze Linux sterownik mv643xx_eth podłącza PHY przed przypisaniem dev->netdev_ops. Przy włączonym CONFIG_NET_SHAPER phy_attach_direct() odczytuje niezainicjowane netdev_ops, powodując panikę jądra z dereferencją NULL.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: ring-buffer: Use current_context for safe per-CPU buffer swap The ring_buffer_swap_cpu() function currently checks the per-CPU committing counter to determine if a buffer is actively being written to before performing the swap. However, there exists a race window where this check can be bypassed: ring_buffer_lock_reserve cpu_buffer = buffer->buffers[cpu]; // cpu_buffer_a rb_reserve_next_event rb_start_commit // inc committing if (unlikely(READ_ONCE(cpu_buffer->buffer) != buffer)) {...} __rb_reserve_next rb_move_tail rb_end_commit(cpu_buffer); // dec committing => 0 /* interrupt hits here, successfully swaps! */ local_inc(&cpu_buffer->committing); ring_buffer_unlock_commit cpu_buffer = buffer->buffers[cpu]; // cpu_buffer_b rb_commit rb_end_commit RB_WARN_ON(cpu_buffer, !local_read(&cpu_buffer->committing)) // triggers warning The committing counter can temporarily drop to 0 during a single write operation (within rb_move_tail), creating a window where swap can succeed even though the write is still in progress. This leads to inconsistent buffer state and triggers the RB_WARN_ON in rb_commit(). Replace the committing counter check with current_context checks, which are set at the entry of ring_buffer_lock_reserve() and remain valid throughout the entire write operation, providing a reliable indicator of buffer busy state during swap.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

