Katalog CVE

CVE-2026-97955

Nieznane
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

W jądrze Linux w sterowniku mana występuje problem z wskaźnikiem programu XDP. Gdy prealokacja buforów RX nie powiedzie się, funkcja mana_xdp_set() zwraca błąd bez przywrócenia poprzedniego wskaźnika, co prowadzi do użycia po zwolnieniu. Poprawka przywraca poprzedni program na ścieżce błędu.

Ocena ryzyka

Użycie po zwolnieniu może prowadzić do awarii systemu, nieprawidłowego działania lub potencjalnego podniesienia uprawnień. Problem jest osiągalny przez zwykłe polecenie ip link set xdp, gdy alokacja buforów się nie powiedzie.

Rekomendacja

Zastosuj aktualizację jądra Linux zawierającą poprawkę dla sterownika mana. Monitoruj alokacje buforów RX, aby uniknąć warunków błędu.

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: net: mana: restore the XDP program pointer when pre-allocation fails mana_xdp_set() publishes the new program into apc->bpf_prog before it allocates anything, because mana_pre_alloc_rxbufs() sizes the buffers from it via mana_get_rxbuf_cfg(). When that allocation fails the function returns the error directly, skipping the err_dealloc_rxbuffs label which is the only place that restores the previous pointer. The attach is reported as failed, so the BPF core drops the reference it held for the caller and the program can be freed, while apc->bpf_prog still points at it. The next consumer of mana_xdp_get() - typically mana_chn_setxdp() from mana_alloc_queues() on the following ifup, or after a TX timeout reset - then calls bpf_prog_add() on freed memory. This is reachable from an ordinary "ip link set dev ethX xdp obj ..." whenever the per-queue RX buffer pre-allocation cannot be satisfied. Restore the previous program on that error path.

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