net_sched: sch_sfq: fix a potential crash on gso_skb handling
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.4.295, 5.10.239, 5.15.186, 6.1.142, 6.6.94, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: net_sched: sch_sfq: fix a potential crash on gso_skb handling SFQ has an assumption of always being able to queue at least one packet. However, after the blamed commit, sch->q.len can be inflated by packets in sch->gso_skb, and an enqueue() on an empty SFQ qdisc can be followed by an immediate drop. Fix sfq_drop() to properly clear q->tail in this situation. ip netns add lb ip link add dev to-lb type veth peer name in-lb netns lb ethtool -K to-lb tso off # force qdisc to requeue gso_skb ip netns exec lb ethtool -K in-lb gro on # enable NAPI ip link set dev to-lb up ip -netns lb link set dev in-lb up ip addr add dev to-lb 192.168.20.1/24 ip -netns lb addr add dev in-lb 192.168.20.2/24 tc qdisc replace dev to-lb root sfq limit 100 ip netns exec lb netserver netperf -H 192.168.20.2 -l 100 & netperf -H 192.168.20.2 -l 100 & netperf -H 192.168.20.2 -l 100 & netperf -H 192.168.20.2 -l 100 &
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From a53851e2c3218aa30b77abd6e68cf1c371f15afe · fixed in c337efb20d6d9f9bbb4746f6b119917af5c886dc; From a53851e2c3218aa30b77abd6e68cf1c371f15afe · fixed in b44f791f27b14c9eb6b907fbe51f2ba8bec32085; From a53851e2c3218aa30b77abd6e68cf1c371f15afe · fixed in 5814a7fc3abb41f63f2d44c9d3ff9d4e62965b72; From a53851e2c3218aa30b77abd6e68cf1c371f15afe · fixed in 9c19498bdd7cb9d854bd3c54260f71cf7408495e; From a53851e2c3218aa30b77abd6e68cf1c371f15afe · fixed in b4e9bab6011b9559b7c157b16b91ae46d4d8c533; From a53851e2c3218aa30b77abd6e68cf1c371f15afe · fixed in d1bc80da75c789f2f6830df89d91fb2f7a509943; From a53851e2c3218aa30b77abd6e68cf1c371f15afe · fixed in 82448d4dcd8406dec688632a405fdcf7f170ec69; From a53851e2c3218aa30b77abd6e68cf1c371f15afe · fixed in 82ffbe7776d0ac084031f114167712269bf3d832
- Linux Linux
4.16
- KernelLinux
From 4.16.0 · fixed in 5.4.295; From 5.5.0 · fixed in 5.10.239; From 5.11.0 · fixed in 5.15.186; From 5.16.0 · fixed in 6.1.142; From 6.2.0 · fixed in 6.6.94; From 6.7.0 · fixed in 6.12.34; From 6.13.0 · fixed in 6.15.3
References 8
git.kernel.org
- stable/c/c337efb20d6d9f9bbb4746f6b119917af5c886dc
- stable/c/b44f791f27b14c9eb6b907fbe51f2ba8bec32085
- stable/c/5814a7fc3abb41f63f2d44c9d3ff9d4e62965b72
- stable/c/9c19498bdd7cb9d854bd3c54260f71cf7408495e
- stable/c/b4e9bab6011b9559b7c157b16b91ae46d4d8c533
- stable/c/d1bc80da75c789f2f6830df89d91fb2f7a509943
- stable/c/82448d4dcd8406dec688632a405fdcf7f170ec69
- stable/c/82ffbe7776d0ac084031f114167712269bf3d832