CVE-2025-39677
BaseFortify
Publication date: 2025-09-05
Last updated on: 2025-11-25
Assigner: kernel.org
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| linux | linux_kernel | 6.17 |
| linux | linux_kernel | 6.17 |
| linux | linux_kernel | From 5.15.160 (inc) to 5.16 (inc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-NVD-CWE-noinfo |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
This vulnerability is a flaw in the Linux kernel's network scheduler (net/sched) related to backlog accounting in the function qdisc_dequeue_internal. It affects certain queueing disciplines (qdiscs) like hhf, fq, fq_codel, and fq_pie when they adjust to a new limit. Specifically, when the parent token bucket filter (tbf) runs out of tokens, packets (skbs) are placed in a special queue (gso_skb). The peek handlers account for both queue length and backlog, but qdisc_dequeue_internal only accounts for queue length, missing backlog decrement operations when dropping packets. This causes inaccurate backlog accounting, leading to underflow in the parent's backlog counter and incorrect packet statistics.
How can this vulnerability impact me? :
This vulnerability can cause incorrect backlog accounting in the network scheduler, leading to inaccurate packet statistics and potential underflow in the token bucket filter parent's backlog counter. This may affect network traffic shaping and quality of service, potentially causing unexpected behavior in packet handling and network performance degradation.
How can this vulnerability be detected on my network or system? Can you suggest some commands?
This vulnerability can be detected by observing discrepancies in packet backlog accounting in affected qdiscs (hhf, fq, fq_codel, fq_pie) when using a tbf parent qdisc. The provided example commands to detect the issue are: export TARGET=fq tc qdisc del dev lo root tc qdisc add dev lo root handle 1: tbf rate 8bit burst 100b latency 1ms tc qdisc replace dev lo handle 3: parent 1:1 $TARGET limit 1000 echo '' ; echo 'add child' ; tc -s -d qdisc show dev lo ping -I lo -f -c2 -s32 -W0.001 127.0.0.1 2>&1 >/dev/null echo '' ; echo 'after ping' ; tc -s -d qdisc show dev lo tc qdisc change dev lo handle 3: parent 1:1 $TARGET limit 0 echo '' ; echo 'after limit drop' ; tc -s -d qdisc show dev lo tc qdisc replace dev lo handle 2: parent 1:1 sfq echo '' ; echo 'post graft' ; tc -s -d qdisc show dev lo These commands show the backlog bytes not decreasing properly, indicating the vulnerability.
What immediate steps should I take to mitigate this vulnerability?
The vulnerability has been fixed by simplifying the codepath for all clients of qdisc_dequeue_internal, ensuring proper backlog adjustments. Immediate mitigation involves updating the Linux kernel to a version that includes this fix for the affected qdiscs (hhf, fq, fq_codel, fq_pie).