net_sched: prio: fix a race in prio_tune()
Gerrard Tai reported a race condition in PRIO, 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.
Metrics
Affected Vendors & Products
| Source | ID | Title |
|---|---|---|
Debian DLA |
DLA-4327-1 | linux security update |
Debian DLA |
DLA-4328-1 | linux-6.1 security update |
Debian DSA |
DSA-5973-1 | linux security update |
EUVD |
EUVD-2025-22847 | In the Linux kernel, the following vulnerability has been resolved: net_sched: prio: fix a race in prio_tune() Gerrard Tai reported a race condition in PRIO, 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. |
Ubuntu USN |
USN-7681-1 | Linux kernel vulnerability |
Ubuntu USN |
USN-7681-2 | Linux kernel (Oracle) vulnerability |
Ubuntu USN |
USN-7681-3 | Linux kernel (Oracle) vulnerability |
Ubuntu USN |
USN-7682-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7682-2 | Linux kernel (Oracle) vulnerabilities |
Ubuntu USN |
USN-7682-3 | Linux kernel (Real-time) vulnerabilities |
Ubuntu USN |
USN-7682-4 | Linux kernel (Low Latency) vulnerabilities |
Ubuntu USN |
USN-7682-5 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7682-6 | Linux kernel (IBM) vulnerabilities |
Ubuntu USN |
USN-7683-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7683-2 | Linux kernel (FIPS) vulnerabilities |
Ubuntu USN |
USN-7683-3 | Linux kernel (Real-time) vulnerabilities |
Ubuntu USN |
USN-7686-1 | Linux kernel (Raspberry Pi) vulnerabilities |
Ubuntu USN |
USN-7701-1 | Linux kernel vulnerabilities |
Ubuntu USN |
USN-7701-2 | Linux kernel (FIPS) vulnerabilities |
Ubuntu USN |
USN-7701-3 | Linux kernel (IoT) vulnerabilities |
Ubuntu USN |
USN-7711-1 | Linux kernel (Azure) vulnerabilities |
Ubuntu USN |
USN-7712-1 | Linux kernel (Azure FIPS) vulnerabilities |
Ubuntu USN |
USN-7712-2 | Linux kernel (Azure) vulnerabilities |
Ubuntu USN |
USN-7719-1 | Linux kernel (Raspberry Pi Real-time) vulnerabilities |
Ubuntu USN |
USN-7721-1 | Linux kernel (Azure) vulnerabilities |
Ubuntu USN |
USN-7737-1 | Linux kernel (Azure) vulnerabilities |
Ubuntu USN |
USN-7819-1 | Linux kernel (Azure) vulnerabilities |
Ubuntu USN |
USN-7832-1 | Linux kernel (Oracle) vulnerabilities |
Ubuntu USN |
USN-7819-2 | Linux kernel (Azure FIPS) vulnerabilities |
Solution
No solution given by the vendor.
Workaround
No workaround given by the vendor.
Mon, 03 Nov 2025 18:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
|
Fri, 27 Jun 2025 14:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Weaknesses | CWE-366 | |
| Metrics |
cvssV3_1
|
cvssV3_1
|
Fri, 27 Jun 2025 10:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
|
Sat, 21 Jun 2025 12:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| References |
| |
| Metrics |
threat_severity
|
cvssV3_1
|
Fri, 20 Jun 2025 11:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | In the Linux kernel, the following vulnerability has been resolved: net_sched: prio: fix a race in prio_tune() Gerrard Tai reported a race condition in PRIO, 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. | |
| Title | net_sched: prio: fix a race in prio_tune() | |
| References |
|
Status: PUBLISHED
Assigner: Linux
Published:
Updated: 2025-11-03T17:33:50.557Z
Reserved: 2025-04-16T04:51:23.981Z
Link: CVE-2025-38083
No data.
Status : Awaiting Analysis
Published: 2025-06-20T12:15:21.470
Modified: 2025-11-03T18:16:01.647
Link: CVE-2025-38083
OpenCVE Enrichment
Updated: 2025-06-23T08:20:14Z
Debian DLA
Debian DSA
EUVD
Ubuntu USN