net_sched: red: fix a race in __red_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.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: red: fix a race in __red_change() Gerrard Tai reported a race condition in RED, 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 0c8d13ac96070000da33f394f45e9c19638483c5 · fixed in 2790c4ec481be45a80948d059cd7c9a06bc37493; From 0c8d13ac96070000da33f394f45e9c19638483c5 · fixed in a1bf6a4e9264a685b0e642994031f9c5aad72414; From 0c8d13ac96070000da33f394f45e9c19638483c5 · fixed in 110a47efcf23438ff8d31dbd9c854fae2a48bf98; From 0c8d13ac96070000da33f394f45e9c19638483c5 · fixed in f569984417a4e12c67366e69bdcb752970de921d; From 0c8d13ac96070000da33f394f45e9c19638483c5 · fixed in 2a71924ca4af59ffc00f0444732b6cd54b153d0e; From 0c8d13ac96070000da33f394f45e9c19638483c5 · fixed in 4b755305b2b0618e857fdadb499365b5f2e478d1; From 0c8d13ac96070000da33f394f45e9c19638483c5 · fixed in 444ad445df5496a785705019268a8a84b84484bb; From 0c8d13ac96070000da33f394f45e9c19638483c5 · fixed in 85a3e0ede38450ea3053b8c45d28cf55208409b8
- Linux Linux
5.0
- KernelLinux
From 5.0.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/2790c4ec481be45a80948d059cd7c9a06bc37493
- stable/c/a1bf6a4e9264a685b0e642994031f9c5aad72414
- stable/c/110a47efcf23438ff8d31dbd9c854fae2a48bf98
- stable/c/f569984417a4e12c67366e69bdcb752970de921d
- stable/c/2a71924ca4af59ffc00f0444732b6cd54b153d0e
- stable/c/4b755305b2b0618e857fdadb499365b5f2e478d1
- stable/c/444ad445df5496a785705019268a8a84b84484bb
- stable/c/85a3e0ede38450ea3053b8c45d28cf55208409b8