5.5

CVE-2025-38457: net/sched: Abort __tc_modify_qdisc if parent class does not exist

Modified
AliasesUBUNTU-CVE-2025-38457DEBIAN-CVE-2025-38457
Published 25-07-2025Last modified 15-10-2026

Vulnerability summary

CVE-2025-38457 is a medium (CVSS 5.5) vulnerability in debian debian_linux. EPSS estimates a 0.20% chance of exploitation in the next 30 days, higher than 9.4% of scored vulnerabilities.

Priority
Routine

Not severe (CVSS 5.5, local access); no exploitation reported by the 5 checked sources

Source freshness unavailable

How is this decided?
CVSS score
5.5/10
010
Medium · v3.1 (NVD)
EPSS score
0.20%
0%100%
Low · +0.03 pp in 30 days
KEVNot listedNot listed by any tracked catalog.
RansomwareNot flaggedNo ransomware use recorded.
Public exploits0No public exploits recorded

Advisory lineage

Upstream 0 · Downstream 54 · Related 48

Timeline

  1. 25-07-2025
    PublishedVulnerability first disclosed.
  2. 15-10-2026
    Last modifiedVulnerability information updated.

Description

In the Linux kernel, the following vulnerability has been resolved: net/sched: Abort __tc_modify_qdisc if parent class does not exist Lion's patch [1] revealed an ancient bug in the qdisc API. Whenever a user creates/modifies a qdisc specifying as a parent another qdisc, the qdisc API will, during grafting, detect that the user is not trying to attach to a class and reject. However grafting is performed after qdisc_create (and thus the qdiscs' init callback) is executed. In qdiscs that eventually call qdisc_tree_reduce_backlog during init or change (such as fq, hhf, choke, etc), an issue arises. For example, executing the following commands: sudo tc qdisc add dev lo root handle a: htb default 2 sudo tc qdisc add dev lo parent a: handle beef fq Qdiscs such as fq, hhf, choke, etc unconditionally invoke qdisc_tree_reduce_backlog() in their control path init() or change() which then causes a failure to find the child class; however, that does not stop the unconditional invocation of the assumed child qdisc's qlen_notify with a null class. All these qdiscs make the assumption that class is non-null. The solution is ensure that qdisc_leaf() which looks up the parent class, and is invoked prior to qdisc_create(), should return failure on not finding the class. In this patch, we leverage qdisc_leaf to return ERR_PTRs whenever the parentid doesn't correspond to a class, so that we can detect it earlier on and abort before qdisc_create is called. [1] https://lore.kernel.org/netdev/d912cbd7-193b-4269-9857-525bee8bbb6a@gmail.com/

CVSS metrics

4 scores · 3 sources · 2 versions

EPSS trend

Probability

0.20%

Chance of exploitation in the next 30 days

Percentile

9%

Versus all other CVEs

30-day change

Increase +0.03 pp

From 0.17% on 04-10-2026

04-10-202603-11-2026

Known exploited

Compare KEV catalogs
CISA KEV

Not in the CISA KEV catalog.

ENISA CNW

Not in the ENISA CNW catalog.

CIRCL

Not in the CIRCL catalog.

Public exploits

0 found

No public exploits indexed.

Weaknesses

CWE · root cause

No weakness data has been published for this record.

Affected systems

Version check

Known conditions: local access, low-privilege account, no user interaction (CVSS vector). Other conditions: not stated in public data.

Ubuntu147 products
  • linuxAll versions (No fix recorded) | < 5.15.0-156.166 | < 6.8.0-100.100
  • linux-allwinner-5.19All versions (No fix recorded)
  • linux-awsAll versions (No fix recorded) | < 5.15.0-1092.99 | < 6.8.0-1046.49
  • linux-aws-5.0All versions (No fix recorded)
  • linux-aws-5.11All versions (No fix recorded)
Debian2 products
  • linux< 6.1.147-1 | < 6.12.41-1 | < 6.16.3-1
  • debian_linuxEOL11.0
Linux2 products
  • linux≥ 5e50da01d0ce7ef0ba3ed6cfabd62f327da0aca6, < 923a276c74e25073ae391e930792ac86a9f77f1e | ≥ 5e50da01d0ce7ef0ba3ed6cfabd62f327da0aca6, < 90436e72c9622c2f70389070088325a3232d339f | ≥ 5e50da01d0ce7ef0ba3ed6cfabd62f327da0aca6, < 25452638f133ac19d75af3f928327d8016952c8e | ≥ 5e50da01d0ce7ef0ba3ed6cfabd62f327da0aca6, < 23c165dde88eac405eebb59051ea1fe139a45803 | ≥ 5e50da01d0ce7ef0ba3ed6cfabd62f327da0aca6, < 4c691d1b6b6dbd73f30ed9ee7da05f037b0c49af | ≥ 5e50da01d0ce7ef0ba3ed6cfabd62f327da0aca6, < 8ecd651ef24ab50123692a4e3e25db93cb11602a | ≥ 5e50da01d0ce7ef0ba3ed6cfabd62f327da0aca6, < e28a383d6485c3bb51dc5953552f76c4dea33eea | ≥ 5e50da01d0ce7ef0ba3ed6cfabd62f327da0aca6, < ffdde7bf5a439aaa1955ebd581f5c64ab1533963 | 2.6.20
  • linux_kernel≥ 2.6.20, < 5.4.296 | ≥ 5.5, < 5.10.240 | ≥ 5.11, < 5.15.189 | ≥ 5.16, < 6.1.146 | ≥ 6.2, < 6.6.99 | ≥ 6.7, < 6.12.39 | ≥ 6.13, < 6.15.7 | 6.16:rc1 | 6.16:rc2 | 6.16:rc3 | 6.16:rc4 | 6.16:rc5

3 vendors · 151 products

References

47 links
Show all 47 references