Description
In the Linux kernel, the following vulnerability has been resolved: net/sched: Make cake_enqueue return NET_XMIT_CN when past buffer_limit 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.
Product status
046f6fd5daefac7f5abdafb436b30f63bc7c602b (git) before 7689ab22de36f8db19095f6bdf11f28cfde92f5c
046f6fd5daefac7f5abdafb436b30f63bc7c602b (git) before de04ddd2980b48caa8d7e24a7db2742917a8b280
046f6fd5daefac7f5abdafb436b30f63bc7c602b (git) before 0dacfc5372e314d1219f03e64dde3ab495a5a25e
046f6fd5daefac7f5abdafb436b30f63bc7c602b (git) before 710866fc0a64eafcb8bacd91bcb1329eb7e5035f
046f6fd5daefac7f5abdafb436b30f63bc7c602b (git) before aa12ee1c1bd260943fd6ab556d8635811c332eeb
046f6fd5daefac7f5abdafb436b30f63bc7c602b (git) before ff57186b2cc39766672c4c0332323933e5faaa88
046f6fd5daefac7f5abdafb436b30f63bc7c602b (git) before 62d591dde4defb1333d202410609c4ddeae060b3
046f6fd5daefac7f5abdafb436b30f63bc7c602b (git) before 15de71d06a400f7fdc15bf377a2552b0ec437cf5
4.19
Any version before 4.19
5.4.297 (semver)
5.10.241 (semver)
5.15.190 (semver)
6.1.149 (semver)
6.6.103 (semver)
6.12.44 (semver)
6.16.4 (semver)
6.17 (original_commit_for_fix)
References
git.kernel.org/...c/7689ab22de36f8db19095f6bdf11f28cfde92f5c
git.kernel.org/...c/de04ddd2980b48caa8d7e24a7db2742917a8b280
git.kernel.org/...c/0dacfc5372e314d1219f03e64dde3ab495a5a25e
git.kernel.org/...c/710866fc0a64eafcb8bacd91bcb1329eb7e5035f
git.kernel.org/...c/aa12ee1c1bd260943fd6ab556d8635811c332eeb
git.kernel.org/...c/ff57186b2cc39766672c4c0332323933e5faaa88
git.kernel.org/...c/62d591dde4defb1333d202410609c4ddeae060b3
git.kernel.org/...c/15de71d06a400f7fdc15bf377a2552b0ec437cf5