CVE-2026-98968
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
amt: wyślij zapytanie ogólne przekaźnika bezpośrednio ze ścieżki odbiorczej
Skb ustawiony w kolejce w qdisc może przetrwać tunel, do którego się odnosi
poprzez surowy wskaźnik w skb->cb. Na przykład przy ustawieniu igmp_qrv
do 1 na przekaźniku, tunel żyje przez 135 s, więc opóźnienie sieci wynosi
180 s na urządzeniu amt przeżywa to; kiedy tunel wygasa i jest
zwolniony, kolejne usunięcie z kolejki wyzwala użycie po zwolnieniu
amt_dev_xmit().
BŁĄD: KASAN: użycie płyty po zwolnieniu w amt_dev_xmit+0x2763/0x2e20
Zadzwoń do śledzenia:
amt_dev_xmit+0x2763/0x2e20 [drivers/net/amt.c:1262]
dev_hard_start_xmit+0x22f/0x620
sch_direct_xmit+0x12e/0xac0
netem_dequeue+0x333/0xc50
net_tx_action+0x35c/0xa60
amt_send_igmp_gq() i amt_send_mld_gq() są wywoływane tylko z
amt_request_handler(), w sekcji rcu_read_lock_bh() pliku
amt_rcv(). Funkcja amt_request_handler() ma już tunel, którego dotyczy zapytanie
for: znalazł lub utworzył go w tej sekcji. Kolejkowanie zapytania za pomocą
dev_queue_xmit() prowadzi tylko z powrotem do amt_dev_xmit(), która usuwa
nagłówek Ethernet i wywołania amt_send_membership_query() dla tego tunelu.
Zamiast tego wykonaj to połączenie bezpośrednio od dwóch nadawców w ten sam sposób
amt_send_advertisement() transmituje ze ścieżki odbiorczej. Zapytanie
nigdy nie czeka w qdisc, tunel jest wyłuskiwany jedynie wewnątrz
Sekcja RCU, która ją znalazła lub utworzyła, i w której nic nie jest zapisane
skb->cb, więc nie jest potrzebne żadne wyszukiwanie ani przeliczanie. Usuń gałąź zapytania
amt_dev_xmit(), amt_skb_cb() i struct amt_skb_cb, które nie mają
użytkownicy opuścili.
Zmiany zachowania:
- Własne zapytania ogólne przekaźnika nie przechodzą już przez amt
ścieżka wyjścia urządzenia: jego qdisc, wyjście tc (clsact/tcx),
hak wyjściowy netfilter i zaczepy pakietowe. Nadal są widoczne jako
UDP na podkładce.
- Zapytanie, które zostało wysłane pomyślnie, nie jest już liczone jako
tx_dropped. Stara gałąź zapytania pozostawiona przez etykietę odblokowania,
który liczył każde wysłane zapytanie jako porzucone.
- Zapytanie docierające do amt_dev_xmit() na przekaźniku z innego miejsca,
taki jak zapytanie przestrzeni użytkownika, jest teraz odrzucany przy typie IGMP/MLD
przełącznik. Wcześniej ufał wszystkiemu, co posiadał skb->cb i miał wartość NULL
tunel uderzył w WARN_ON(1).
>_ Referencje
- https://git.kernel.org/stable/c/181cb48c1e9af6b402567e132f879f89d1c54131
- https://git.kernel.org/stable/c/95114e421196250e3d9662f12df442799477d3c3
- https://git.kernel.org/stable/c/afae89de73dd693cfa329580ba0fba63bd3f0a11
- https://git.kernel.org/stable/c/e7183b7d518ce8b3e1f7284f9881d7a87569df14
- https://git.kernel.org/stable/c/e7ea63b4195a150604993044ab574d8240f2a399
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