CVE-2026-74314
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 3 - wyżej niż 3% wszystkich znanych CVE
Streszczenie
W jądrze Linuxa odkryto podatność w mechanizmie BPF dotyczącą recyklingu wartości w mapach. Podczas aktualizacji lub usuwania wpisu, pola specjalne (np. timery, kolejki pracy) były usuwane w kontekście operacji, co mogło być niebezpieczne w kontekście NMI. Wprowadzono nową funkcję anulującą, która wykonuje tylko bezpieczne operacje w kontekście NMI, a pełne usunięcie pozostawia do końcowego czyszczenia.
Ocena ryzyka
Organizacja może być narażona na nieprawidłowe działanie programów BPF, które polegają na natychmiastowym zwolnieniu pól specjalnych po aktualizacji/usunięciu wpisu w mapie. Może to prowadzić do błędów logicznych, wycieków zasobów lub potencjalnych problemów ze stabilnością systemu, szczególnie w środowiskach używających BPF do monitorowania lub bezpieczeństwa.
Rekomendacja
Zaleca się jak najszybsze zaktualizowanie jądra Linuxa do wersji zawierającej poprawkę dla CVE-2026-74314. Należy również przeanalizować programy BPF pod kątem zależności od natychmiastowego zwalniania pól specjalnych i dostosować je do nowej, luźniejszej semantyki.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: bpf: Cancel special fields on map value recycle Map update and delete paths currently call bpf_obj_free_fields() when a value is being replaced or recycled. That makes field destruction depend on the context of the update/delete operation. For tracing programs this can include NMI context, where referenced kptr destructors, uptr unpinning, and graph root destruction are not generally safe. Introduce bpf_obj_cancel_fields() for the reusable-value path. It only performs NMI-safe cleanup for timer, workqueue, and task_work fields. Fields that need full destruction are left attached to the recycled value and are destroyed by the final cleanup path instead. Switch array and hashtab update/delete/recycle paths to this cancel helper. Keep bpf_obj_free_fields() for final map destruction and for bpf_mem_alloc destructors. Preallocated hashtabs do not have allocator destructors, so teardown continues to walk the normal and extra elements and fully destroy their fields. This deliberately relaxes the eager-free semantics of map update/delete for special fields. Programs that relied on a recycled map slot becoming empty immediately after update/delete were relying on behavior that cannot be implemented safely from every BPF execution context without offloading arbitrary destructors. There is a chance this change breaks programs making assumptions regarding the eager freeing of fields. If so, we can relax semantics to cancellation only when irqs_disabled() is true in the future. However, theoretically, map values that get reused eagerly already have weaker guarantees as parallel users can recreate freed fields before the new element becomes visible again.

