In the Linux kernel, the following vulnerability has been resolved:
net/sched: Make cakeenqueue return NETXMITCN when past bufferlimit
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 bufferlimit, which causes packet dropping. However, cakeenqueue still returns NETXMITSUCCESS, causing htbenqueue to call htbactivate with an empty child qdisc. We should return NETXMITCN when packets are dropped from the same tin and flow.
I do not believe return value of NETXMITCN is necessary for packet drops in the case of ack filtering, as that is meant to optimize performance, not to signal congestion.