net/sched: Only allow act_ct to bind to clsact/ingress qdiscs and shared blocks
- 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.15.203, 6.1.167, 6.6.130, 6.8, 6.12.77, 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: Only allow act_ct to bind to clsact/ingress qdiscs and shared blocks As Paolo said earlier [1]: "Since the blamed commit below, classify can return TC_ACT_CONSUMED while the current skb being held by the defragmentation engine. As reported by GangMin Kim, if such packet is that may cause a UaF when the defrag engine later on tries to tuch again such packet." act_ct was never meant to be used in the egress path, however some users are attaching it to egress today [2]. Attempting to reach a middle ground, we noticed that, while most qdiscs are not handling TC_ACT_CONSUMED, clsact/ingress qdiscs are. With that in mind, we address the issue by only allowing act_ct to bind to clsact/ingress qdiscs and shared blocks. That way it's still possible to attach act_ct to egress (albeit only with clsact). [1] https://lore.kernel.org/netdev/674b8cbfc385c6f37fb29a1de08d8fe5c2b0fbee.1771321118.git.pabeni@redhat.com/ [2] https://lore.kernel.org/netdev/cc6bfb4a-4a2b-42d8-b9ce-7ef6644fb22b@ovn.org/
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From 172ba7d46c202e679f3ccb10264c67416aaeb1c4 · fixed in bc4e5bb529823a09f02dbe96169de679a9db26e0; From 0b5b831122fc3789fff75be433ba3e4dd7b779d4 · fixed in fb3c380a54e33d1fd272cc342faa906d787d7ef1; From 73f7da5fd124f2cda9161e2e46114915e6e82e97 · fixed in 5a110ddcc99bda77a28598b3555fe009eaab3828; From 3f14b377d01d8357eba032b4cabc8c1149b458b6 · fixed in 524ce8b4ea8f64900b6c52b6a28df74f6bc0801e; From 3f14b377d01d8357eba032b4cabc8c1149b458b6 · fixed in 380ad8b7c65ea7aa10ef2258297079ed5ac1f5b6; From 3f14b377d01d8357eba032b4cabc8c1149b458b6 · fixed in 9deda0fcda5c1f388c5e279541850b71a2ccfcf4; From 3f14b377d01d8357eba032b4cabc8c1149b458b6 · fixed in 11cb63b0d1a0685e0831ae3c77223e002ef18189; From 5.15.148 · fixed in 5.15.203; From 6.1.75 · fixed in 6.1.167; From 6.6.14 · fixed in 6.6.130; From 6.7.2 · fixed in 6.8
- Linux Linux
6.8
- KernelLinux
fixed in 5.15.203; From 5.16.0 · fixed in 6.1.167; From 6.2.0 · fixed in 6.6.130; From 6.7.0 · fixed in 6.12.77; From 6.8.0 · fixed in 6.18.18; From 6.13.0 · fixed in 6.19.8
References 7
git.kernel.org
- stable/c/bc4e5bb529823a09f02dbe96169de679a9db26e0
- stable/c/fb3c380a54e33d1fd272cc342faa906d787d7ef1
- stable/c/5a110ddcc99bda77a28598b3555fe009eaab3828
- stable/c/524ce8b4ea8f64900b6c52b6a28df74f6bc0801e
- stable/c/380ad8b7c65ea7aa10ef2258297079ed5ac1f5b6
- stable/c/9deda0fcda5c1f388c5e279541850b71a2ccfcf4
- stable/c/11cb63b0d1a0685e0831ae3c77223e002ef18189