Skip to main content
← All vulnerabilities
CVE-2025-38107

net_sched: ets: fix a race in ets_qdisc_change()

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.10.239, 5.15.186, 5.5, 5.20, 6.1.142, and 3 more
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

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: total

  3. 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