CVE-2026-90071
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
net/sched: sch_teql: przywróć skb->dev na ścieżce awarii urządzenia slave
teql_master_xmit() ustawia skb->dev = slave przed wywołaniem funkcji slave
ndo_start_xmit(), ale nigdy jej nie przywraca, gdy transmisja się nie powiedzie. The
skb następnie podchodzi do następnego niewolnika, wciąż wskazując na poprzedniego.
Jeśli późniejszy niewolnik nie ma rozpoznanego sąsiada, teql_resolve() przekazuje skb
do neigh_event_send(), która umieszcza go w kolejce w kolejce arp_queue tego sąsiada
z nieaktualnym skb->dev. skb->dev nie zawiera żadnego odniesienia, więc usunięcie pliku
poprzednie urządzenie podrzędne zwalnia urządzenie sieciowe, podczas gdy skb nadal znajduje się w kolejce.
Cokolwiek będzie dalej działać na tym skb - arp_error_report() po przekroczeniu limitu czasu lub
neigh_direct_output() -> dev_queue_xmit() gdy sąsiad rozwiąże -
powoduje UAF taki jak ten poniżej:
BŁĄD: KASAN: użycie płyty po zwolnieniu w __icmp_send (net/ipv4/icmp.c:914 (wyróżnik 2))
Odczytaj rozmiar 4 pod adresem ffff888106e100b0 za pomocą zadania Flood_packet/527
Procesor: 0 UID: 0 PID: 527 Comm: Flood_packet Nieskażony 7.2.0-rc6-g594d90519502 #1 PREEMPT(leniwy)
Nazwa sprzętu: QEMU Ubuntu 24.04 PC v2 (i440FX + PIIX, poprawka arch_caps, 1996), BIOS 1.16.3-debian-1.16.3-2 01.04.2014
Zadzwoń do śledzenia:
<przerwanie>
dump_stack_lvl (lib/dump_stack.c:94 lib/dump_stack.c:120)
print_report (mm/kasan/report.c:378 mm/kasan/report.c:482)
? __pfx__raw_spin_lock_irqsave (./include/asm-generic/qrwlock.h:122 (wyróżnik 4))
? __icmp_send (net/ipv4/icmp.c:914 (wyróżnik 2))
kasan_report (mm/kasan/report.c:595)
? __icmp_send (net/ipv4/icmp.c:914 (wyróżnik 2))
__icmp_send (net/ipv4/icmp.c:914 (wyróżnik 2))
[...]
ipv4_link_failure (net/ipv4/route.c:1251 net/ipv4/route.c:1258)
? __pfx_ipv4_link_failure (./include/linux/skbuff.h:4327)
? _raw_write_lock (./include/linux/instrumented.h:55 ./include/linux/atomic/atomic-instrumented.h:1301 ./include/asm-generic/qrwlock.h:98 ./include/linux/rwlock_api_smp.h:230 kernel/locking/spinlock.c:304)
? __pfx__raw_write_lock (jądro/blokowanie/spinlock.c:175)
arp_error_report (./include/net/dst.h:438 net/ipv4/arp.c:296)
neigh_invalidate (net/core/neighbour.c:1077)
neigh_timer_handler (net/core/neighbour.c:1169)
[...]
Przydzielone przez zadanie 505:
kasan_save_stack (mm/kasan/common.c:57)
kasan_save_track (mm/kasan/common.c:78)
__kasan_kmalloc (mm/kasan/wspólny.c:398 mm/kasan/wspólny.c:415)
__kvmalloc_node_noprof (./include/linux/kasan.h:263 mm/slub.c:5334 mm/slub.c:6905)
alloc_netdev_mqs (net/core/dev.c:12055 (wyróżnik 2))
rtnl_create_link (net/core/rtnetlink.c:3721)
rtnl_newlink (net/core/rtnetlink.c:3903 net/core/rtnetlink.c:4044 net/core/rtnetlink.c:4159)
rtnetlink_rcv_msg (net/core/rtnetlink.c:7076)
[...]
Uwolniony przez zadanie 536:
kasan_save_stack (mm/kasan/common.c:57)
kasan_save_track (mm/kasan/common.c:78)
kasan_save_free_info (mm/kasan/generic.c:584)
__kasan_slab_free (mm/kasan/common.c:253 mm/kasan/common.c:285)
kfree (./include/linux/kasan.h:235 mm/slub.c:2677 mm/slub.c:6377 mm/slub.c:6692)
urządzenie_release (sterowniki/base/core.c:2636)
kobject_put (lib/kobject.c:689 lib/kobject.c:720 ./include/linux/kref.h:65 lib/kobject.c:737)
netdev_run_todo (net/core/dev.c:11756)
rtnl_dellink (net/core/rtnetlink.c:157 ./include/linux/rtnetlink.h:135 net/core/rtnetlink.c:3651)
rtnetlink_rcv_msg (net/core/rtnetlink.c:7076)
[...]
Napraw to, przywracając skb->dev do urządzenia głównego na końcu każdego urządzenia podrzędnego
iteracja.
>_ Referencje
- https://git.kernel.org/stable/c/00d8a387b23b7831ad9919256a6b9caaa10f19c3
- https://git.kernel.org/stable/c/012559cf3c67ce8825a31d4f66b040b6fbaf775e
- https://git.kernel.org/stable/c/0cd75037948567193f7f5767176538822ce23873
- https://git.kernel.org/stable/c/1360bc93f5be1be3cf937ebea667b3418dd30a79
- https://git.kernel.org/stable/c/96bc345a3f17543d0d92ada609e02198d6380e26
- https://git.kernel.org/stable/c/aa39a790d56b40bfcf3861653ceb46a3a113adb6
- https://git.kernel.org/stable/c/d453bf439ef230b5743afc25e194adacca8c6e43
- https://git.kernel.org/stable/c/dc4b95b8fee95113587e93ca116356032d271371
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