Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2025-39677— net/sched: Fix backlog accounting in qdisc_dequeue_internal

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于net/sched模块在处理qdisc_dequeue_internal时存在错误的backlog计数。

CVSS 7.8 · High EPSS 0.15% · P4

Possible ATT&CK Techniques 1 AI

T1068 · Exploitation for Privilege Escalation

Affected Version Matrix 6

VendorProduct Version RangeStatus
Linux Linux 4b549a2ef4bef9965d97cbd992ba67930cd3e0fe< a225f44d84b8900d679c5f5a9ea46fe9c0cc7802 affected
4b549a2ef4bef9965d97cbd992ba67930cd3e0fe< 52bf272636bda69587952b35ae97690b8dc89941 affected
3.5 affected
< 3.5 unaffected
6.16.4≤ 6.16.* unaffected
6.17≤ * unaffected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2025-39677

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
net/sched: Fix backlog accounting in qdisc_dequeue_internal
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: net/sched: Fix backlog accounting in qdisc_dequeue_internal This issue applies for the following qdiscs: hhf, fq, fq_codel, and fq_pie, and occurs in their change handlers when adjusting to the new limit. The problem is the following in the values passed to the subsequent qdisc_tree_reduce_backlog call given a tbf parent: When the tbf parent runs out of tokens, skbs of these qdiscs will be placed in gso_skb. Their peek handlers are qdisc_peek_dequeued, which accounts for both qlen and backlog. However, in the case of qdisc_dequeue_internal, ONLY qlen is accounted for when pulling from gso_skb. This means that these qdiscs are missing a qdisc_qstats_backlog_dec when dropping packets to satisfy the new limit in their change handlers. One can observe this issue with the following (with tc patched to support a limit of 0): 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 The second to last show command shows 0 packets but a positive number (74) of backlog bytes. The problem becomes clearer in the last show command, where qdisc_purge_queue triggers qdisc_tree_reduce_backlog with the positive backlog and causes an underflow in the tbf parent's backlog (4096 Mb instead of 0). To fix this issue, the codepath for all clients of qdisc_dequeue_internal has been simplified: codel, pie, hhf, fq, fq_pie, and fq_codel. qdisc_dequeue_internal handles the backlog adjustments for all cases that do not directly use the dequeue handler. The old fq_codel_change limit adjustment loop accumulated the arguments to the subsequent qdisc_tree_reduce_backlog call through the cstats field. However, this is confusing and error prone as fq_codel_dequeue could also potentially mutate this field (which qdisc_dequeue_internal calls in the non gso_skb case), so we have unified the code here with other qdiscs.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于net/sched模块在处理qdisc_dequeue_internal时存在错误的backlog计数。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux 4b549a2ef4bef9965d97cbd992ba67930cd3e0fe ~ a225f44d84b8900d679c5f5a9ea46fe9c0cc7802 -
Linux Linux 3.5 -

II. Public POCs for CVE-2025-39677

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2025-39677

请登录查看更多情报信息。

Same Patch Batch · Linux · 2025-09-05 · 60 CVEs total

CVE-2025-39726 9.8 CRITICAL s390/ism: fix concurrency management in ism_cmd()
CVE-2025-39682 9.8 CRITICAL tls: fix handling of zero-length records on the rx_list
CVE-2025-38734 9.8 CRITICAL net/smc: fix UAF on smcsk after smc_listen_out()
CVE-2025-39702 9.8 CRITICAL ipv6: sr: Fix MAC comparison to be constant-time
CVE-2025-39703 9.8 CRITICAL net, hsr: reject HSR frame if skb can't hold tag
CVE-2025-38737 9.8 CRITICAL cifs: Fix oops due to uninitialised variable
CVE-2025-39673 9.8 CRITICAL ppp: fix race conditions in ppp_fill_forward_path
CVE-2025-39704 8.8 HIGH LoongArch: KVM: Fix stack protector issue in send_ipi_data()
CVE-2025-39718 8.4 HIGH vsock/virtio: Validate length in packet header before skb_put()
CVE-2025-39711 7.8 HIGH media: ivsc: Fix crash at shutdown due to missing mei_cldev_disable() calls
CVE-2025-39710 7.8 HIGH media: venus: Add a check for packet size after reading from shared memory
CVE-2025-39697 7.8 HIGH NFS: Fix a race when updating an existing write
CVE-2025-39714 7.8 HIGH media: usbtv: Lock resolution while streaming
CVE-2025-39717 7.8 HIGH open_tree_attr: do not allow id-mapping changes without OPEN_TREE_CLONE
CVE-2025-39698 7.8 HIGH io_uring/futex: ensure io_futex_wait() cleans up properly on failure
CVE-2025-38731 7.8 HIGH drm/xe: Fix vm_bind_ioctl double free bug
CVE-2025-39696 7.8 HIGH ALSA: hda: tas2781: Fix wrong reference of tasdevice_priv
CVE-2025-39691 7.8 HIGH fs/buffer: fix use-after-free when call bh_read() helper
CVE-2025-39689 7.8 HIGH ftrace: Also allocate and copy hash for reading of filter files
CVE-2025-39680 7.8 HIGH i2c: rtl9300: Fix out-of-bounds bug in rtl9300_i2c_smbus_xfer

Showing top 20 of 60 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2025-39677

No comments yet


Leave a comment