net_sched: ets: fix a race in ets_qdisc_change()
- 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.10.239, 5.15.186, 5.5, 5.20, 6.1.142, and 3 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: ets: fix a race in ets_qdisc_change() Gerrard Tai reported a race condition in ETS, whenever SFQ perturb timer fires at the wrong time. The race is as follows: CPU 0 CPU 1 [1]: lock root [2]: qdisc_tree_flush_backlog() [3]: unlock root | | [5]: lock root | [6]: rehash | [7]: qdisc_tree_reduce_backlog() | [4]: qdisc_put() This can be abused to underflow a parent's qlen. Calling qdisc_purge_queue() instead of qdisc_tree_flush_backlog() should fix the race, because all packets will be purged from the qdisc before releasing the lock.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From 699d82e9a6db29d509a71f1f2f4316231e6232e6 · fixed in eb7b74e9754e1ba2088f914ad1f57a778b11894b; From ce881ddbdc028fb1988b66e40e45ca0529c23b46 · fixed in 0b479d0aa488cb478eb2e1d8868be946ac8afb4f; From b05972f01e7d30419987a1f221b5593668fd6448 · fixed in 347867cb424edae5fec1622712c8dd0a2c42918f; From b05972f01e7d30419987a1f221b5593668fd6448 · fixed in 0383b25488a545be168744336847549d4a2d3d6c; From b05972f01e7d30419987a1f221b5593668fd6448 · fixed in 073f64c03516bcfaf790f8edc772e0cfb8a84ec3; From b05972f01e7d30419987a1f221b5593668fd6448 · fixed in fed94bd51d62d2e0e006aa61480e94e5cd0582b0; From b05972f01e7d30419987a1f221b5593668fd6448 · fixed in d92adacdd8c2960be856e0b82acc5b7c5395fddb; From 5.10.142 · fixed in 5.10.239; From 5.15.66 · fixed in 5.15.186; From 5.4.213 · fixed in 5.5; From 5.19.8 · fixed in 5.20
- Linux Linux
6.0
- KernelLinux
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.0.0 · fixed in 6.6.94; From 6.2.0 · fixed in 6.12.34; From 6.7.0 · fixed in 6.15.3
References 7
git.kernel.org
- stable/c/eb7b74e9754e1ba2088f914ad1f57a778b11894b
- stable/c/0b479d0aa488cb478eb2e1d8868be946ac8afb4f
- stable/c/347867cb424edae5fec1622712c8dd0a2c42918f
- stable/c/0383b25488a545be168744336847549d4a2d3d6c
- stable/c/073f64c03516bcfaf790f8edc772e0cfb8a84ec3
- stable/c/fed94bd51d62d2e0e006aa61480e94e5cd0582b0
- stable/c/d92adacdd8c2960be856e0b82acc5b7c5395fddb