In the Linux kernel, the following vulnerability has been resolved:
net/sched: fix lockdep splat in qdisc_tree_reduce_backlog()
qdisc_tree_reduce_backlog() is called with the qdisc lock held, not RTNL.
We must use qdisc_lookup_rcu() instead of qdisc_lookup() syzbot reported:
WARNING: suspicious RCU usage 6.1.74-syzkaller #0 Not tainted
----------------------------- net/sched/sch_api.c:305 suspicious
rcu_dereference_protected() usage! other info that might help us debug
this: rcu_scheduler_active = 2, debug_locks = 1 3 locks held by udevd/1142:
#0: ffffffff87c729a0 (rcu_read_lock){…}-{1:2}, at: rcu_lock_acquire
include/linux/rcupdate.h:306 [inline] #0: ffffffff87c729a0
(rcu_read_lock){…}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:747
[inline] #0: ffffffff87c729a0 (rcu_read_lock){…}-{1:2}, at:
net_tx_action+0x64a/0x970 net/core/dev.c:5282 #1: ffff888171861108
(&sch->q.lock){+.-.}-{2:2}, at: spin_lock include/linux/spinlock.h:350
[inline] #1: ffff888171861108 (&sch->q.lock){+.-.}-{2:2}, at:
net_tx_action+0x754/0x970 net/core/dev.c:5297 #2: ffffffff87c729a0
(rcu_read_lock){…}-{1:2}, at: rcu_lock_acquire
include/linux/rcupdate.h:306 [inline] #2: ffffffff87c729a0
(rcu_read_lock){…}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:747
[inline] #2: ffffffff87c729a0 (rcu_read_lock){…}-{1:2}, at:
qdisc_tree_reduce_backlog+0x84/0x580 net/sched/sch_api.c:792 stack
backtrace: CPU: 1 PID: 1142 Comm: udevd Not tainted 6.1.74-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/25/2024 Call Trace: <TASK> [<ffffffff85b85f14>] __dump_stack
lib/dump_stack.c:88 [inline] [<ffffffff85b85f14>]
dump_stack_lvl+0x1b1/0x28f lib/dump_stack.c:106 [<ffffffff85b86007>]
dump_stack+0x15/0x1e lib/dump_stack.c:113 [<ffffffff81802299>]
lockdep_rcu_suspicious+0x1b9/0x260 kernel/locking/lockdep.c:6592
[<ffffffff84f0054c>] qdisc_lookup+0xac/0x6f0 net/sched/sch_api.c:305
[<ffffffff84f037c3>] qdisc_tree_reduce_backlog+0x243/0x580
net/sched/sch_api.c:811 [<ffffffff84f5b78c>] pfifo_tail_enqueue+0x32c/0x4b0
net/sched/sch_fifo.c:51 [<ffffffff84fbcf63>] qdisc_enqueue
include/net/sch_generic.h:833 [inline] [<ffffffff84fbcf63>]
netem_dequeue+0xeb3/0x15d0 net/sched/sch_netem.c:723 [<ffffffff84eecab9>]
dequeue_skb net/sched/sch_generic.c:292 [inline] [<ffffffff84eecab9>]
qdisc_restart net/sched/sch_generic.c:397 [inline] [<ffffffff84eecab9>]
__qdisc_run+0x249/0x1e60 net/sched/sch_generic.c:415 [<ffffffff84d7aa96>]
qdisc_run+0xd6/0x260 include/net/pkt_sched.h:125 [<ffffffff84d85d29>]
net_tx_action+0x7c9/0x970 net/core/dev.c:5313 [<ffffffff85e002bd>]
__do_softirq+0x2bd/0x9bd kernel/softirq.c:616 [<ffffffff81568bca>]
invoke_softirq kernel/softirq.c:447 [inline] [<ffffffff81568bca>]
__irq_exit_rcu+0xca/0x230 kernel/softirq.c:700 [<ffffffff81568ae9>]
irq_exit_rcu+0x9/0x20 kernel/softirq.c:712 [<ffffffff85b89f52>]
sysvec_apic_timer_interrupt+0x42/0x90 arch/x86/kernel/apic/apic.c:1107
[<ffffffff85c00ccb>] asm_sysvec_apic_timer_interrupt+0x1b/0x20
arch/x86/include/asm/idtentry.h:656
OS | Version | Architecture | Package | Version | Filename |
---|---|---|---|---|---|
ubuntu | 20.04 | noarch | linux | < any | UNKNOWN |
ubuntu | 22.04 | noarch | linux | < any | UNKNOWN |
ubuntu | 24.04 | noarch | linux | < 6.8.0-38.38 | UNKNOWN |
ubuntu | 20.04 | noarch | linux-aws | < any | UNKNOWN |
ubuntu | 22.04 | noarch | linux-aws | < any | UNKNOWN |
ubuntu | 24.04 | noarch | linux-aws | < 6.8.0-1011.12 | UNKNOWN |
ubuntu | 20.04 | noarch | linux-aws-5.15 | < any | UNKNOWN |
ubuntu | 22.04 | noarch | linux-aws-6.5 | < any | UNKNOWN |
ubuntu | 20.04 | noarch | linux-azure | < any | UNKNOWN |
ubuntu | 22.04 | noarch | linux-azure | < any | UNKNOWN |
git.kernel.org/linus/7eb322360b0266481e560d1807ee79e0cef5742b (6.9-rc3)
git.kernel.org/stable/c/07696415526bee0607e495017369c7303a4792e1
git.kernel.org/stable/c/7eb322360b0266481e560d1807ee79e0cef5742b
git.kernel.org/stable/c/b7d1ce2cc7192e8a037faa3f5d3ba72c25976460
git.kernel.org/stable/c/c040b99461a5bfc14c2d0cbb1780fcc3a4706c7e
launchpad.net/bugs/cve/CVE-2024-35892
nvd.nist.gov/vuln/detail/CVE-2024-35892
security-tracker.debian.org/tracker/CVE-2024-35892
ubuntu.com/security/notices/USN-6893-1
ubuntu.com/security/notices/USN-6893-2
ubuntu.com/security/notices/USN-6893-3
ubuntu.com/security/notices/USN-6918-1
www.cve.org/CVERecord?id=CVE-2024-35892