CVE-2026-90071 in Linuxinformation

Résumé

par VulDB • 17/09/2026

Dans le noyau Linux, la vulnérabilité suivante a été corrigée :

net/sched: sch_teql : restauration de skb->dev sur le chemin d'échec du maître (slave failure path)

teql_master_xmit() définit skb->dev = slave avant d'appeler ndo_start_xmit() du maître, mais ne restaure pas cette valeur lorsque la transmission échoue. Le paquetskb continue ensuite vers le prochain maître en pointant toujours sur l'ancien.

Si un maître suivant n'a pas de voisin résolu, teql_resolve() transmet le skb à neigh_event_send(), qui le met en file d'attente dans arp_queue de ce voisin avec une valeur obsolète pour skb->dev.skb->dev ne contenant aucune référence, la suppression du précédent maître libère l'objet net_device alors que le skb est encore mis en file d'attente. Toute opération ultérieure sur ce skb -arp_error_report() en cas de délai d'expiration, ou neigh_direct_output() -> dev_queue_xmit() une fois le voisin résolu- provoque un Use-After-Free (UAF) similaire à celui ci-dessous :

BUG: KASAN: slab-use-after-free in __icmp_send (net/ipv4/icmp.c:914 (discriminator 2)) Lecture de taille 4 à l'adresse ffff888106e100b0 par la tâche flood_packet/527 CPU : 0 UID : 0 PID : 527 Comm : flood_packet Non corrompu 7.2.0-rc6-g594d90519502 #1 PREEMPT(lazy) Nom du matériel : QEMU Ubuntu 24.04 PC v2 (i440FX + PIIX, arch_caps fix, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 Trace d'appel : <IRQ> 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 (discriminator 4)) ? __icmp_send (net/ipv4/icmp.c:914 (discriminator 2)) kasan_report (mm/kasan/report.c:595) ? __icmp_send (net/ipv4/icmp.c:914 (discriminator 2)) __icmp_send (net/ipv4/icmp.c:914 (discriminator 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 (kernel/locking/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) [...]
Alloué par la tâche 505 : kasan_save_stack (mm/kasan/common.c:57) kasan_save_track (mm/kasan/common.c:78) __kasan_kmalloc (mm/kasan/common.c:398 mm/kasan/common.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 (discriminator 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/dev.c:7076) [...]
Libéré par la tâche 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) device_release (drivers/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) [...]

Corrigez ce problème en restaurant skb->dev sur le maître à la fin de chaque itération du maître.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsable

Linux

Réserver

11/09/2026

Divulgation

17/09/2026

Modérer

accepté

Entrée

VDB-406553

CPE

prêt

EPSS

0.00000

KEV

non

Activités

très faible

Sources

Do you need the next level of professionalism?

Upgrade your account now!