[SRU][J/N/O][PATCH 0/1] CVE-2024-53057

Ian Whitfield ian.whitfield at canonical.com
Mon Nov 25 23:34:13 UTC 2024


[Impact]

In qdisc_tree_reduce_backlog, Qdiscs with major handle ffff: are assumed
to be either root or ingress. This assumption is bogus since it's valid
to create egress qdiscs with major handle ffff:
Budimir Markovic found that for qdiscs like DRR that maintain an active
class list, it will cause a UAF with a dangling class pointer.

In 066a3b5b2346, the concern was to avoid iterating over the ingress
qdisc since its parent is itself. The proper fix is to stop when parent
TC_H_ROOT is reached because the only way to retrieve ingress is when a
hierarchy which does not contain a ffff: major handle call into
qdisc_lookup with TC_H_MAJ(TC_H_ROOT).

In the scenario where major ffff: is an egress qdisc in any of the tree
levels, the updates will also propagate to TC_H_ROOT, which then the
iteration must stop.

[Backport]

Focal was skipped due to already having this fix on-tree.

[Fix]

Oracular:  backport
Noble:     backport
Jammy:     backport
Focal:     backported previously
Bionic:    sent to ESM ML
Xenial:    sent to ESM ML
Trusty:    sent to ESM ML

[Test Case]

Compile and boot tested

[Where problems could occur]

This fix affects those who use the linux packet scheduler for their
networking. An issue with this fix would be visible to the user as
unexpected networking behavior or a system crash due to use-after-free.

Pedro Tammela (1):
  net/sched: stop qdisc_tree_reduce_backlog on TC_H_ROOT

 net/sched/sch_api.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.43.0




More information about the kernel-team mailing list