CVE-2026-97612
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
net: mpls: wyczyść protokół wewnętrzny, gdy pojawi się ostatnia etykieta
skb_mpls_push() rejestruje jednokrotnie nagłówek sieciowy przed enkapsulacją, bramkowany
na !skb->inner_protocol. skb_mpls_pop() nigdy nie czyści tego rekordu, więc tak
przeżywa hermetyzację, którą opisuje.
Open vSwitch może następnie ponownie przesłać MPLS do pakietu, którego
inside_network_header nadal wskazuje na starsze, głębsze przesunięcie: naciśnij a
etykieta, otwieraj każdą etykietę, ponownie rozpowszechniaj (ovs_flow_key_update() ponownie wyprowadza
key->eth.type i resetuje nagłówek_sieci, ale pozostawia inside_*), a następnie naciśnij
ponownie. ovs_fragment() ufa rekordowi:
skb->nagłówek_sieci = skb->nagłówek_sieci wewnętrznej;
więc skb_network_offset() staje się ujemna. Czek związany jest podpisany:
if (skb_network_offset(skb) > MAX_L2_LEN)
ujemne przesunięcie przekazuje go, a przygotowanie_frag() poszerza wartość:
unsigned int hlen = skb_network_offset(skb);
memcpy(&data->l2_data, skb->data, hlen);
co stanowi pamięć ~4GiB z 30-bajtowego bufora na procesor.
Powielone w wersji 7.3-rc1. RDX to długość obcięta (unsigned int)(-8):
BŁĄD: nie można obsłużyć błędu strony dla adresu: ffffe8ffffc16000
#PF: dostęp do zapisu nadzorcy w trybie jądra
Ups: 0002 [#1] SMP KASAN NOPTI
RIP: 0010:memcpy+0x8/0x20
RDX: 00000000ffffffff8 RSI: ffff888105d732db RDI: ffffe8ffffc16000
przygotuj_frag+0x3df/0x4e0
fragment_ovs+0x589/0x7e0
do_output+0x4ce/0x5e0
do_execute_actions+0x55d2/0x7b30
ovs_execute_actions+0xea/0x450
Ten sam kształt przyczyny źródłowej, co w przypadku zatwierdzenia 975b5b067f52 („ipv6: sr: przywróć sieć
nagłówek przed trasowaniem i przesyłaniem dalej”): przestarzałe przesunięcie nagłówka sieci
dotarcia do konsumenta, który ją poszerza. Tutaj pochodzi z MPLS
ścieżka push/pop.
Wyczyść inside_protocol, gdy pakiet nie będzie już MPLS, więc wypchnij go później
ponownie rejestruje bieżący nagłówek. net/sched/act_mpls.c jest jedynym innym
skb_mpls_pop() i otrzymuje tę samą poprawkę; sch_frag.c zapisuje i
przywraca protokół wewnętrzny wokół fragmentacji w taki sam sposób, jak robi to OVS.
>_ Referencje
Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.
This product uses the NVD API but is not endorsed or certified by the NVD.
Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.
NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org