{"id":25480,"date":"2026-09-18T04:31:26","date_gmt":"2026-09-17T20:31:26","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90071"},"modified":"2026-09-18T04:31:26","modified_gmt":"2026-09-17T20:31:26","slug":"cve-2026-90071","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90071","title":{"rendered":"CVE-2026-90071 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nnet\/sched: sch_teql:"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net\/sched: sch_teql: restore skb-&gt;dev on the slave failure path<\/p>\n<p>teql_master_xmit() sets skb-&gt;dev = slave before calling the slave&#8217;s<br \/>\nndo_start_xmit(), but never restores it when that transmit fails. The<br \/>\nskb then walks on to the next slave still pointing at the previous one.<\/p>\n<p>If a later slave has no resolved neighbour, teql_resolve() hands the skb<br \/>\nto neigh_event_send(), which queues it on that neighbour&#8217;s arp_queue<br \/>\nwith the stale skb-&gt;dev. skb-&gt;dev holds no reference, so deleting the<br \/>\nprevious slave frees the net_device while the skb is still queued.<br \/>\nWhatever runs next on that skb &#8211; arp_error_report() on timeout, or<br \/>\nneigh_direct_output() -&gt; dev_queue_xmit() once the neighbour resolves &#8211;<br \/>\ncauses a UAF like the one below:<\/p>\n<p>BUG: KASAN: slab-use-after-free in __icmp_send (net\/ipv4\/icmp.c:914 (discriminator 2))<br \/>\nRead of size 4 at addr ffff888106e100b0 by task flood_packet\/527<br \/>\nCPU: 0 UID: 0 PID: 527 Comm: flood_packet Not tainted 7.2.0-rc6-g594d90519502 #1 PREEMPT(lazy)<br \/>\nHardware name: QEMU Ubuntu 24.04 PC v2 (i440FX + PIIX, arch_caps fix, 1996), BIOS 1.16.3-debian-1.16.3-2 04\/01\/2014<br \/>\nCall Trace:<\/p>\n<p>dump_stack_lvl (lib\/dump_stack.c:94 lib\/dump_stack.c:120)<br \/>\nprint_report (mm\/kasan\/report.c:378 mm\/kasan\/report.c:482)<br \/>\n? __pfx__raw_spin_lock_irqsave (.\/include\/asm-generic\/qrwlock.h:122 (discriminator 4))<br \/>\n? __icmp_send (net\/ipv4\/icmp.c:914 (discriminator 2))<br \/>\nkasan_report (mm\/kasan\/report.c:595)<br \/>\n? __icmp_send (net\/ipv4\/icmp.c:914 (discriminator 2))<br \/>\n__icmp_send (net\/ipv4\/icmp.c:914 (discriminator 2))<br \/>\n[&#8230;]<br \/>\nipv4_link_failure (net\/ipv4\/route.c:1251 net\/ipv4\/route.c:1258)<br \/>\n? __pfx_ipv4_link_failure (.\/include\/linux\/skbuff.h:4327)<br \/>\n? _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)<br \/>\n? __pfx__raw_write_lock (kernel\/locking\/spinlock.c:175)<br \/>\narp_error_report (.\/include\/net\/dst.h:438 net\/ipv4\/arp.c:296)<br \/>\nneigh_invalidate (net\/core\/neighbour.c:1077)<br \/>\nneigh_timer_handler (net\/core\/neighbour.c:1169)<br \/>\n[&#8230;]<br \/>\nAllocated by task 505:<br \/>\nkasan_save_stack (mm\/kasan\/common.c:57)<br \/>\nkasan_save_track (mm\/kasan\/common.c:78)<br \/>\n__kasan_kmalloc (mm\/kasan\/common.c:398 mm\/kasan\/common.c:415)<br \/>\n__kvmalloc_node_noprof (.\/include\/linux\/kasan.h:263 mm\/slub.c:5334 mm\/slub.c:6905)<br \/>\nalloc_netdev_mqs (net\/core\/dev.c:12055 (discriminator 2))<br \/>\nrtnl_create_link (net\/core\/rtnetlink.c:3721)<br \/>\nrtnl_newlink (net\/core\/rtnetlink.c:3903 net\/core\/rtnetlink.c:4044 net\/core\/rtnetlink.c:4159)<br \/>\nrtnetlink_rcv_msg (net\/core\/rtnetlink.c:7076)<br \/>\n[&#8230;]<br \/>\nFreed by task 536:<br \/>\nkasan_save_stack (mm\/kasan\/common.c:57)<br \/>\nkasan_save_track (mm\/kasan\/common.c:78)<br \/>\nkasan_save_free_info (mm\/kasan\/generic.c:584)<br \/>\n__kasan_slab_free (mm\/kasan\/common.c:253 mm\/kasan\/common.c:285)<br \/>\nkfree (.\/include\/linux\/kasan.h:235 mm\/slub.c:2677 mm\/slub.c:6377 mm\/slub.c:6692)<br \/>\ndevice_release (drivers\/base\/core.c:2636)<br \/>\nkobject_put (lib\/kobject.c:689 lib\/kobject.c:720 .\/include\/linux\/kref.h:65 lib\/kobject.c:737)<br \/>\nnetdev_run_todo (net\/core\/dev.c:11756)<br \/>\nrtnl_dellink (net\/core\/rtnetlink.c:157 .\/include\/linux\/rtnetlink.h:135 net\/core\/rtnetlink.c:3651)<br \/>\nrtnetlink_rcv_msg (net\/core\/rtnetlink.c:7076)<br \/>\n[&#8230;]<\/p>\n<p>Fix this by restoring skb-&gt;dev to the master at the end of each slave&#8217;s<br \/>\niteration.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net\/sched: sch_teql: restore skb-&gt;dev on the slave failure path<\/p>\n<p>teql_master_xmit() sets skb-&gt;dev = slave before calling the slave&#8217;<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-25480","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/25480","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25480"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25480"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}