Podatność w module nft_inner jądra Linux umożliwia desynchronizację między obliczonym offsetem nagłówka transportowego a rzeczywistym protokołem warstwy 4 dla wewnętrznych pakietów IPv6. Błąd pozwala atakującemu na sfałszowanie nagłówka transportowego i potencjalne ominięcie reguł firewalla (firewall bypass).
▸ Pokaż oryginał (EN)
In the Linux kernel, the following vulnerability has been resolved: netfilter: nft_inner: Fix IPv6 inner_thoff desync In nft_inner_parse_l2l3(), when processing inner IPv6 packets, ipv6_find_hdr() correctly computes the transport header offset traversing all extension headers, but the result is immediately overwritten with nhoff + sizeof(_ip6h) (40 bytes), which only accounts for the IPv6 base header. This creates a desync between inner_thoff (wrong — points to extension header start) and l4proto (correct — e.g., IPPROTO_TCP), enabling transport header forgery and potential firewall bypass. This issue affects stable versions from Linux 6.2. For comparison, the normal (non-inner) IPv6 path correctly preserves ipv6_find_hdr()'s result. Removing the incorrect overwrite ensures that ipv6_find_hdr()'s calculated transport header offset is preserved, thereby fixing the desynchronization.
W funkcji nft_inner_parse_l2l3() przetwarzającej wewnętrzne pakiety IPv6, funkcja ipv6_find_hdr() poprawnie oblicza offset nagłówka transportowego, przemierzając wszystkie nagłówki rozszerzeń (extension headers). Jednak wynik ten jest natychmiast nadpisywany wartością nhoff + sizeof(_ip6h) (40 bajtów), która uwzględnia jedynie podstawowy nagłówek IPv6. Skutkiem jest desynchronizacja: pole inner_thoff wskazuje błędnie na początek nagłówków rozszerzeń, podczas gdy l4proto zawiera poprawną wartość (np. IPPROTO_TCP). Rozbieżność ta umożliwia spreparowanie pakietu, który silnik netfilter oceni niezgodnie z rzeczywistą strukturą jego nagłówków.
Atakujący zdalnie i bez uwierzytelnienia może sfałszować nagłówek transportowy wewnętrznego pakietu IPv6, doprowadzając do ominięcia reguł firewalla opartego na netfilter/nftables. Podatność prowadzi do nieautoryzowanego dostępu do chronionych zasobów sieciowych (wysoka poufność i integralność — brak wpływu na dostępność).
Należy zastosować patche dostępne u producenta zgodnie z referencjami (commits dostępne w repozytorium kernel.org: 689bbf48c1f4, 870d59e2cf21, b6a91f68ebfe, c161ad9157f5, d0f98a3617f6). Zaleca się aktualizację jądra Linux do wersji zawierającej poprawkę dla używanej gałęzi stable.
Stabilne wersje jądra Linux od wersji 6.2 wykorzystujące moduł netfilter nft_inner z obsługą wewnętrznych pakietów IPv6.
Opis wskazuje, że problem dotyczy stabilnych wersji jądra Linux począwszy od 6.2. Normalny (nie-wewnętrzny) kod obsługi IPv6 w netfilter poprawnie zachowuje wynik ipv6_find_hdr(), co potwierdza, że błąd jest izolowany do ścieżki przetwarzania pakietów wewnętrznych (inner packets) w nft_inner.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NLinux Kernel
OSLinux7.16.2 – 6.6.142 (bez)6.7 – 6.12.92 (bez)6.13 – 6.18.34 (bez)6.19 – 7.0.11 (bez)
Powiązane podatności
Type confusion w V8 (Google Chrome) — zdalne uszkodzenie sterty
Commvault Command Center – nieuwierzytelniony RCE przez path traversal w ZIP
IBM Aspera Faspex 4.4.2 Patch Level 1 and earlier could allow a remote attacker to execute arbitrary code on t...
VMware Workspace ONE Access and Identity Manager contain a remote code execution vulnerability due to server-s...
VMware Workspace One Access, Access Connector, Identity Manager, and Identity Manager Connector address have a...