CVE-2026-74637
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 2 - wyżej niż 2% wszystkich znanych CVE
Streszczenie
W jądrze Linux wykryto podatność use-after-free w podsystemie perf, związaną z nieprawidłowym odłączaniem zdarzeń potomnych od grupy. Gdy zdarzenie potomne jest odłączane od grupy (np. podczas hot-unplug CPU), jego wskaźnik group_leader pozostaje wskazujący na starego lidera, który może zostać zwolniony, co prowadzi do dereferencji zwolnionej pamięci podczas wywołania ioctl PERF_IOC_FLAG_GROUP. Problem został zaobserwowany przez fuzzer zdarzeń perf, hotplug CPU i obciążenie systemu.
Ocena ryzyka
Atakujący z lokalnym dostępem (np. przez fuzzing lub złośliwy proces) może doprowadzić do awarii systemu (kernel panic) lub potencjalnie do eskalacji uprawnień, wykorzystując dostęp do zwolnionej pamięci w jądrze. Podatność dotyczy systemów z włączonym perf events i możliwością hotplug CPU.
Rekomendacja
Zaleca się natychmiastowe zastosowanie oficjalnej łatki z jądra Linux, która naprawia problem przez promowanie odłączanego zdarzenia do singletona oraz poprawia księgowanie cgroup w __event_disable(). Należy również zaktualizować system do wersji jądra zawierającej poprawkę.
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: perf/core: Fix group leader use-after-free after sibling detach perf_group_detach() handles leader and sibling detach differently. When the group leader is detached, all siblings are promoted to singleton events and their group_leader pointer is reset to themselves. When a sibling is detached, it is removed from the leader's sibling_list, but its group_leader pointer is left pointing at the old leader. That is harmless when the sibling is being closed and freed immediately, as in the DETACH_DEAD path. It is not safe when the sibling is detached but kept alive, such as during CPU hotplug with DETACH_GROUP. In that case the sibling is removed from the context, while its file descriptor can still keep it alive. A typical failing sequence is: - A group contains leader L and sibling S. - CPU hot-unplug detaches S with DETACH_GROUP, removing it from L->sibling_list but leaving S->group_leader == L. - L is later closed and freed. - A PERF_IOC_FLAG_GROUP ioctl on S follows S->group_leader and dereferences the freed leader. This was reproduced by running the perf event fuzzer, CPU hotplug, and a stress workload concurrently: Unable to handle kernel paging request at virtual address 006b6b6b6b6b6cdb CPU: 2 PID: 12489 Comm: perf_fuzzer 6.18.7 PREEMPT pc : perf_ioctl+0x34c/0xc68 x20: ffffff89a3fa2c70 x8 : 6b6b6b6b6b6b6b6b Code: 943c4a0e 340047a0 f9404a94 f9411e88 (f940b908) Call trace: perf_ioctl+0x34c/0xc68 (P) __arm64_sys_ioctl+0xa0/0xf4 invoke_syscall+0x58/0xe4 el0_svc_common+0xa8/0xdc do_el0_svc+0x1c/0x28 el0_svc+0x40/0xc0 el0t_64_sync_handler+0x68/0xdc el0t_64_sync+0x1c4/0x1c8 The fault happened in perf_ioctl(), where perf_event_for_each() follows the stale group_leader pointer and perf_event_for_each_child() then dereferences the freed leader's context. Fix the use-after-free by promoting the detached sibling to a singleton. Also fix __event_disable() cgroup accounting and event state change.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

