Commit 195e5dc
net/sched: Make cake_enqueue return NET_XMIT_CN when past buffer_limit
jira VULN-152970
cve CVE-2025-39766
commit-author William Liu <will@willsroot.io>
commit 15de71d
The following setup can trigger a WARNING in htb_activate due to
the condition: !cl->leaf.q->q.qlen
tc qdisc del dev lo root
tc qdisc add dev lo root handle 1: htb default 1
tc class add dev lo parent 1: classid 1:1 \
htb rate 64bit
tc qdisc add dev lo parent 1:1 handle f: \
cake memlimit 1b
ping -I lo -f -c1 -s64 -W0.001 127.0.0.1
This is because the low memlimit leads to a low buffer_limit, which
causes packet dropping. However, cake_enqueue still returns
NET_XMIT_SUCCESS, causing htb_enqueue to call htb_activate with an
empty child qdisc. We should return NET_XMIT_CN when packets are
dropped from the same tin and flow.
I do not believe return value of NET_XMIT_CN is necessary for packet
drops in the case of ack filtering, as that is meant to optimize
performance, not to signal congestion.
Fixes: 046f6fd ("sched: Add Common Applications Kept Enhanced (cake) qdisc")
Signed-off-by: William Liu <will@willsroot.io>
Reviewed-by: Savino Dicanosa <savy@syst3mfailure.io>
Acked-by: Toke Høiland-Jørgensen <toke@toke.dk>
Reviewed-by: Jamal Hadi Salim <jhs@mojatatu.com>
Link: https://patch.msgid.link/20250819033601.579821-1-will@willsroot.io
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit 15de71d)
Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>1 parent 4008020 commit 195e5dc
1 file changed
Lines changed: 12 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1701 | 1701 | | |
1702 | 1702 | | |
1703 | 1703 | | |
1704 | | - | |
| 1704 | + | |
1705 | 1705 | | |
1706 | 1706 | | |
1707 | 1707 | | |
| |||
1711 | 1711 | | |
1712 | 1712 | | |
1713 | 1713 | | |
| 1714 | + | |
1714 | 1715 | | |
1715 | 1716 | | |
1716 | 1717 | | |
| |||
1896 | 1897 | | |
1897 | 1898 | | |
1898 | 1899 | | |
| 1900 | + | |
1899 | 1901 | | |
| 1902 | + | |
1900 | 1903 | | |
1901 | 1904 | | |
1902 | 1905 | | |
1903 | | - | |
| 1906 | + | |
| 1907 | + | |
| 1908 | + | |
| 1909 | + | |
| 1910 | + | |
1904 | 1911 | | |
1905 | 1912 | | |
| 1913 | + | |
| 1914 | + | |
| 1915 | + | |
1906 | 1916 | | |
1907 | 1917 | | |
1908 | 1918 | | |
| |||
0 commit comments