Katalog CVE

CVE-2026-98047

Nieznane
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

W jądrze Linux w podsystemie BPF funkcja in_rbtree_lock_required_cb() sprawdza tylko najgłębszą ramkę weryfikatora, przez co ograniczenia callbacku rbtree znikają w zagnieżdżonej ramce wywołania statycznego podprogramu. Podprogram może odblokować drzewo, usunąć i zwolnić porównywany węzeł, a następnie ponownie zablokować, co prowadzi do wstawienia zwolnionej pamięci do drzewa.

Ocena ryzyka

Użycie zwolnionej pamięci (use-after-free) w strukturach drzewa czerwono-czarnego BPF może prowadzić do uszkodzenia pamięci jądra, awarii systemu lub potencjalnego wykonania dowolnego kodu.

Rekomendacja

Zaktualizuj jądro Linux do wersji z poprawką, która sprawdza wszystkie aktywne ramki weryfikatora pod kątem callbacku rbtree, zachowując ograniczenia również w zagnieżdżonych ramkach.

Inne podatności w Linux kernel

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

In the Linux kernel, the following vulnerability has been resolved: bpf: Check ancestor frames for rbtree callbacks bpf_rbtree_add() invokes its comparator while the caller holds the root lock. The native insertion code retains raw parent and link pointers across the callback, so the verifier prohibits unlocking, consuming tree nodes, or changing RCU state from that callback. in_rbtree_lock_required_cb() only checks the innermost verifier frame. Static subprogram calls are permitted while holding a spin lock, and such a call pushes a frame without in_callback_fn set. Consequently, all callback restrictions disappear in the nested frame. The subprogram can unlock the tree, remove and drop the node being compared, then relock. Native insertion resumes with the stale parent pointer and links freed memory into the tree. Walk all active frames for the rbtree callback instead. Benign static subprograms remain permitted, while callback restrictions follow execution into nested frames.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS