CVE-2026-90083
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
net/sched: act_ife: Działa tylko na ramkach Ethernet
act_ife hermetyzuje/dekapsuluje oryginalny nagłówek Ethernet i używa
skb->dev->hard_header_len jako długość tego nagłówka. To jest tylko
poprawne dla urządzeń Ethernet: na urządzeniu, na którym hard_header_len tego nie robi
pasuje do faktycznie pobranego nagłówka L2 (raporty PPP PPP_HDRLEN
podczas gdy nic nie jest usuwane podczas ingresu), ingres skb_push()/skb_pull()
użyj niewłaściwej długości i możesz trafić skb_under_panic, gdy jest mało miejsca nad głową.
IFE z założenia jest przeznaczony wyłącznie dla Ethernetu - buduje zewnętrzny ethdr, przepisuje
h_source/h_dest/h_proto i wywołuje funkcję eth_type_trans() przy dekodowaniu - więc
zamiast próbować sprawić, by przesunięcia działały dla dowolnych typów łączy,
po prostu upuść pakiety, które nie zawierają nagłówka Ethernet.
Samo sprawdzenie skb->dev->type nie wystarczy. Musimy zaspokoić potrzeby A
obudowa narożna, w której mirred może przekierować skb z urządzenia innego niż Ethernet
do Ethernetu, a skb->dev nie mówi nic o kadrowaniu pliku
skb faktycznie ma: skb przekierowany z ppp0 dociera do celu
hook z mac_len 0 i bez nagłówka Ethernet. Podobnie przy wejściu
wymagaj, aby mac_len miał wartość ETH_HLEN. Na wyjściu mac_len nie jest utrzymywany, więc
typ urządzenia to wszystko, co mamy; fałszywe przekierowanie tam powoduje zniekształcenie
ramkę zamiast pchnięcia poza boisko i zostałaby zniekształcona za pomocą przycisku lub
bez IFE.
Ten przypadek narożny nie jest teoretyczny - przekierowanie z ppp0 do veth
który ma akcję ife encode na haku wejściowym, wpada w panikę bez tego
poprawka:
skbuff: skb_under_panic: len:98 put:14 head:ffff88800e410000
dane:ffff88800e40fff5 ogon: 0x57 koniec: 0x640 programista:veth3
BŁĄD jądra w net/core/skbuff.c:214!
Zadzwoń do śledzenia:
skb_push (net/core/skbuff.c:224 net/core/skbuff.c:2657)
tcf_ife_act (net/sched/act_ife.c:829 net/sched/act_ife.c:874)
tc_run (net/core/dev.c:4463)
netif_receive_skb (net/core/dev.c:6463 net/core/dev.c:6522)
tcf_mirred_to_dev (net/sched/act_mirred.c:248 net/sched/act_mirred.c:328)
tcf_mirred_act (net/sched/act_mirred.c:489)
tc_run (net/core/dev.c:4463)
proces_backlog (net/core/dev.c:6728)
Z gwarantowanym ramkowaniem Ethernet, użyj ETH_HLEN zamiast
hard_header_len.
>_ 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