Katalog CVE

CVE-2026-90049

Nieznane
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

W jądrze Linux naprawiono podatność w funkcji skb_zerocopy(), która nieprawidłowo wywoływała skb_tx_error() na źródłowym skb podczas kopiowania fragów. To powodowało zakończenie uarg zerocopy i wyczyszczenie flagi SKBFL_SHARED_FRAG na skb, który nadal był używany przez stos sieciowy. W szczególności na ścieżce OVS_ACTION_ATTR_USERSPACE skb nie był zwalniany po błędzie, co mogło prowadzić do dekryptowania danych ESP w miejscu, gdzie skb nie posiadał prywatnie fragów, co mogło powodować uszkodzenie danych lub inne problemy.

Ocena ryzyka

Podatność może prowadzić do uszkodzenia danych lub nieprawidłowego działania stosu sieciowego, szczególnie w środowiskach korzystających z Open vSwitch lub nfnetlink_queue, co może skutkować naruszeniem integralności przesyłanych danych.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę, która usuwa wywołanie skb_tx_error() w skb_zerocopy() i pozostawia raportowanie błędów wywołującym.

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: skbuff: don't skb_tx_error() the source skb in skb_zerocopy() skb_zerocopy() copies frags from @from into @to. On an skb_orphan_frags() failure it calls skb_tx_error(@from), a destructive operation on the source skb the copy helper does not own. That completes @from's zerocopy uarg and clears SKBFL_ALL_ZEROCOPY, including the SKBFL_SHARED_FRAG page-ownership marker. Both callers already report the failure on their own drop path. nfnetlink_queue does it at nla_put_failure, and Open vSwitch does it in the flow-miss drop arm of ovs_dp_process_packet(), so nothing is lost by dropping it here. On Open vSwitch's OVS_ACTION_ATTR_USERSPACE path the skb is not freed on this error: do_execute_actions() ignores output_userspace()'s return value and, unless the upcall was the last action, keeps forwarding the same skb through the flow's remaining actions. The uarg is completed while that skb is still in flight, telling the producer its buffers are free, and SKBFL_SHARED_FRAG is cleared on an skb the rest of the stack still handles. That flag is what makes esp_input() call skb_cow_data() instead of decrypting in place, so a later local ESP delivery can decrypt over frags the skb does not own privately. Leave error reporting to the callers.

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