All of lore.kernel.org
 help / color / mirror / Atom feed
* CVE-2026-74267: net/sched: sch_codel: Do not call qdisc_tree_reduce_backlog during peek before restoring qlen
@ 2026-08-15  6:09 Greg Kroah-Hartman
  0 siblings, 0 replies; only message in thread
From: Greg Kroah-Hartman @ 2026-08-15  6:09 UTC (permalink / raw)
  To: linux-cve-announce; +Cc: Greg Kroah-Hartman

From: Greg Kroah-Hartman <gregkh@kernel.org>

Description
===========

In the Linux kernel, the following vulnerability has been resolved:

net/sched: sch_codel: Do not call qdisc_tree_reduce_backlog during peek before restoring qlen

Whenever codel drops packets during peek, it calls
qdisc_tree_reduce_backlog. An issue arises because it calls
qdisc_tree_reduce_backlog before it reincrements the qlen. If qlen drops
to zero, but peek returns an skb, the parent's qlen_notify callback will
be executed even though codel still has 1 packet on the queue and, thus,
will mistakenly deactivate the parent's class causing issues like a wild
memory access when qfq has codel as a child:

[   36.339843][  T370] Oops: general protection fault, probably for non-canonical address 0xfbd59c0000000024: 0000 [#1] SMP KASAN NOPTI
[   36.340408][  T370] KASAN: maybe wild-memory-access in range [0xdead000000000120-0xdead000000000127]
[   36.340737][  T370] CPU: 2 UID: 0 PID: 370 Comm: tc Not tainted 7.1.0-rc5-00287-g66e13b626592 #87 PREEMPT(full)
[   36.341113][  T370] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[   36.341357][  T370] RIP: 0010:qfq_deactivate_agg (include/linux/list.h:1029 (discriminator 2) include/linux/list.h:1043 (discriminator 2) net/sched/sch_qfq.c:1369 (discriminator 2) net/sched/sch_qfq.c:1395 (discriminator 2)) sch_qfq
[   36.342221][  T370] RSP: 0018:ffff8881100ef370 EFLAGS: 00010216
[   36.342422][  T370] RAX: 0000000000000000 RBX: ffff8881058a9568 RCX: dffffc0000000000
[   36.342664][  T370] RDX: 1ffff11021064dc3 RSI: ffff888108326e00 RDI: dffffc0000000000
[   36.342905][  T370] RBP: ffff8881058a8280 R08: dead000000000122 R09: 1bd5a00000000024
[   36.343140][  T370] R10: fffffbfff2940329 R11: fffffbfff2940329 R12: 0000000000000000
[   36.343383][  T370] R13: dead000000000100 R14: ffff8881058a9580 R15: ffff8881058a9578
[   36.343631][  T370] FS:  00007fc04b0ca780(0000) GS:ffff888184fef000(0000) knlGS:0000000000000000
[   36.343911][  T370] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   36.344116][  T370] CR2: 0000557c02c02000 CR3: 000000010e0ba000 CR4: 0000000000750ef0
[   36.344359][  T370] PKRU: 55555554
[   36.344481][  T370] Call Trace:
...
[   36.345054][  T370] qfq_reset_qdisc (net/sched/sch_qfq.c:357 net/sched/sch_qfq.c:1487) sch_qfq
[   36.345222][  T370]  qdisc_reset (net/sched/sch_generic.c:1057)
[   36.345503][  T370]  __qdisc_destroy (net/sched/sch_generic.c:1096)
[   36.345677][  T370]  qdisc_graft (net/sched/sch_api.c:1062 net/sched/sch_api.c:1053 net/sched/sch_api.c:1159)
[   36.346335][  T370]  tc_get_qdisc (net/sched/sch_api.c:1528 net/sched/sch_api.c:1556)

Fix this by only calling qdisc_tree_reduce_backlog in peek after the
qlen is restored.

The Linux kernel CVE team has assigned CVE-2026-74267 to this issue.


Affected and fixed versions
===========================

	Issue introduced in 5.10.241 with commit cc71a757da78dd4aa1b4a9b19cb011833730ccf2 and fixed in 5.10.261 with commit bb9cfd874ee884117b33e92a002b9a45b48202f4
	Issue introduced in 5.15.190 with commit eda741fe155ddf5ecd2dd3bfbd4fc3c0c7dbb450 and fixed in 5.15.212 with commit 7a05af7f58566682b73578b72ca8e53a268c43bd
	Issue introduced in 6.1.135 with commit 829c49b6b2ff45b043739168fd1245e4e1a91a30 and fixed in 6.1.178 with commit eba49fd85995a3851c597fa2d214f8d21736e1d8
	Issue introduced in 6.6.88 with commit 2f9761a94bae33d26e6a81b31b36e7d776d93dc1 and fixed in 6.6.145 with commit e8c6dbadf139cb14ea6ed14add6ed6e88504dedd
	Issue introduced in 6.12.24 with commit 4d55144b12e742404bb3f8fee6038bafbf45619d and fixed in 6.12.97 with commit e4615aa6bb7802944ae790cb4b3ef8c1b7491af3
	Issue introduced in 6.15 with commit 342debc12183b51773b3345ba267e9263bdfaaef and fixed in 6.18.40 with commit 755108bb7a5083e911294c416cfea605dc75632f
	Issue introduced in 6.15 with commit 342debc12183b51773b3345ba267e9263bdfaaef and fixed in 7.1.5 with commit 91e0a793a72374c20ab31a40ccec21373e82e973
	Issue introduced in 6.15 with commit 342debc12183b51773b3345ba267e9263bdfaaef and fixed in 7.2-rc1 with commit 52f1da34c9f4d5bdc1e8b44242da5c7ba8db85f3
	Issue introduced in 5.4.297 with commit 7a742a9506849d1c1aa71e36c89855ceddc7d58e
	Issue introduced in 6.13.12 with commit e73c838c80dccb9e4f19becc11d9f3cb4a27d483
	Issue introduced in 6.14.3 with commit a57fe60ef4cf96bfbb6b58397ec28bdb5a5c6b31

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2026-74267
will be updated if fixes are backported, please check that for the most
up to date information about this issue.


Affected files
==============

The file(s) affected by this issue are:
	net/sched/sch_codel.c


Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/bb9cfd874ee884117b33e92a002b9a45b48202f4
	https://git.kernel.org/stable/c/7a05af7f58566682b73578b72ca8e53a268c43bd
	https://git.kernel.org/stable/c/eba49fd85995a3851c597fa2d214f8d21736e1d8
	https://git.kernel.org/stable/c/e8c6dbadf139cb14ea6ed14add6ed6e88504dedd
	https://git.kernel.org/stable/c/e4615aa6bb7802944ae790cb4b3ef8c1b7491af3
	https://git.kernel.org/stable/c/755108bb7a5083e911294c416cfea605dc75632f
	https://git.kernel.org/stable/c/91e0a793a72374c20ab31a40ccec21373e82e973
	https://git.kernel.org/stable/c/52f1da34c9f4d5bdc1e8b44242da5c7ba8db85f3

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-08-15  6:32 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-15  6:09 CVE-2026-74267: net/sched: sch_codel: Do not call qdisc_tree_reduce_backlog during peek before restoring qlen Greg Kroah-Hartman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.