Podatność w podsystemie Open vSwitch jądra Linux powoduje nieprawidłowe zerowanie pola 'ipv6.nd' podczas parsowania nagłówków ICMPv6, co niszczy metadane conntrack oryginalnej krotki połączenia. Skutkiem jest błędne dopasowanie pakietów i potencjalne wykonanie nieprawidłowych akcji w obrębie datapath.
▸ Pokaż oryginał (EN)
In the Linux kernel, the following vulnerability has been resolved: net: openvswitch: fix overwriting ct original tuple for ICMPv6 OVS_PACKET_CMD_EXECUTE has 3 main attributes: - OVS_PACKET_ATTR_KEY - Packet metadata in a netlink format. - OVS_PACKET_ATTR_PACKET - Binary packet content. - OVS_PACKET_ATTR_ACTIONS - Actions to execute on the packet. OVS_PACKET_ATTR_KEY is parsed first to populate sw_flow_key structure with the metadata like conntrack state, input port, recirculation id, etc. Then the packet itself gets parsed to populate the rest of the keys from the packet headers. Whenever the packet parsing code starts parsing the ICMPv6 header, it first zeroes out fields in the key corresponding to Neighbor Discovery information even if it is not an ND packet. It is an 'ipv6.nd' field. However, the 'ipv6' is a union that shares the space between 'nd' and 'ct_orig' that holds the original tuple conntrack metadata parsed from the OVS_PACKET_ATTR_KEY. ND packets should not normally have conntrack state, so it's fine to share the space, but normal ICMPv6 Echo packets or maybe other types of ICMPv6 can have the state attached and it should not be overwritten. The issue results in all but the last 4 bytes of the destination address being wiped from the original conntrack tuple leading to incorrect packet matching and potentially executing wrong actions in case this packet recirculates within the datapath or goes back to userspace. ND fields should not be accessed in non-ND packets, so not clearing them should be fine. Executing memset() only for actual ND packets to avoid the issue. Initializing the whole thing before parsing is needed because ND packet may not contain all the options. The issue only affects the OVS_PACKET_CMD_EXECUTE path and doesn't affect packets entering OVS datapath from network interfaces, because in this case CT metadata is populated from skb after the packet is already parsed.
W ścieżce OVS_PACKET_CMD_EXECUTE parser pakietów, przetwarzając nagłówek ICMPv6, bezwarunkowo zeruje pole 'ipv6.nd' w strukturze sw_flow_key. Pole to współdzieli pamięć (union) z polem 'ct_orig', które przechowuje oryginalną krotkę conntrack wczytaną wcześniej z atrybutu OVS_PACKET_ATTR_KEY. Dla pakietów ICMPv6 niebędących pakietami Neighbor Discovery (np. ICMPv6 Echo), zerowanie niszczy większość adresu docelowego oryginalnej krotki conntrack — konkretnie wszystkie bajty z wyjątkiem ostatnich 4. Prowadzi to do niepoprawnego dopasowania pakietów i wykonania błędnych akcji, gdy pakiet ponownie trafia do datapath lub jest przekazywany do przestrzeni użytkownika.
Atakujący lub złośliwy użytkownik przestrzeni użytkownika może doprowadzić do błędnego przetwarzania pakietów sieciowych w Open vSwitch, co skutkuje wykonaniem nieprawidłowych akcji na pakietach i potencjalnym obejściem polityk sieciowych zdefiniowanych w datapath.
Należy zastosować patche dostępne w repozytoriach stabilnych jądra Linux zgodnie z referencjami (commity: 0b532f59, 431e9215, 483eb70f, 5ab6aecb, 6a51ac92). Zalecana jest aktualizacja do najnowszej wersji stabilnej jądra Linux udostępnionej przez producenta lub dystrybutora systemu operacyjnego.
Jądro Linux (Linux Kernel) w wersjach wskazanych w referencjach producenta (wiele gałęzi stabilnych); podatność dotyczy wyłącznie ścieżki OVS_PACKET_CMD_EXECUTE w podsystemie Open vSwitch
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HLinux Kernel
OSLinux4.11 – 4.19.316 (bez)4.20 – 5.4.278 (bez)5.5 – 5.10.219 (bez)5.11 – 5.15.161 (bez)5.16 – 6.1.93 (bez)6.2 – 6.6.33 (bez)6.7 – 6.8.12 (bez)6.9 – 6.9.3 (bez)
Powiązane podatności
Type confusion w V8 (Google Chrome) — zdalne uszkodzenie sterty
Commvault Command Center – nieuwierzytelniony RCE przez path traversal w ZIP
RCE przez YAML deserialization w IBM Aspera Faspex
RCE w VMware Workspace ONE Access i Identity Manager poprzez server-side template injection
Command Injection w VMware Workspace One Access i Identity Manager