CVE-2025-38350: net/sched: Always pass notifications when child class becomes empty

Published Jul 19, 2025
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

net/sched: Always pass notifications when child class becomes empty

Certain classful qdiscs may invoke their classes' dequeue handler on an enqueue operation. This may unexpectedly empty the child qdisc and thus make an in-flight class passive via qlennotify(). Most qdiscs do not expect such behaviour at this point in time and may re-activate the class eventually anyways which will lead to a use-after-free.

The referenced fix commit attempted to fix this behavior for the HFSC case by moving the backlog accounting around, though this turned out to be incomplete since the parent's parent may run into the issue too. The following reproducer demonstrates this use-after-free:

tc qdisc add dev lo root handle 1: drr tc filter add dev lo parent 1: basic classid 1:1 tc class add dev lo parent 1: classid 1:1 drr tc qdisc add dev lo parent 1:1 handle 2: hfsc def 1 tc class add dev lo parent 2: classid 2:1 hfsc rt m1 8 d 1 m2 0 tc qdisc add dev lo parent 2:1 handle 3: netem tc qdisc add dev lo parent 3:1 handle 4: blackhole

echo 1 | socat -u STDIN UDP4-DATAGRAM:127.0.0.1:8888 tc class delete dev lo classid 1:1 echo 1 | socat -u STDIN UDP4-DATAGRAM:127.0.0.1:8888

Since backlog accounting issues leading to a use-after-frees on stale class pointers is a recurring pattern at this point, this patch takes a different approach. Instead of trying to fix the accounting, the patch ensures that qdisctreereducebacklog always calls qlennotify when the child qdisc is empty. This solves the problem because deletion of qdiscs always involves a call to qdiscreset() and / or qdiscpurgequeue() which ultimately resets its qlen to 0 thus causing the following qdisctreereducebacklog() to report to the parent. Note that this may call qlennotify on passive classes multiple times. This is not a problem after the recent patch series that made all the classful qdiscs qlennotify() handlers idempotent.

Affected Software

17 affected componentsFixes available
Linux Foundation Linux Kernel
Linux Linux kernel>=5.4.294<5.4.296
Linux Linux kernel>=5.10.238<5.10.240
Linux Linux kernel>=5.15.185<5.15.187
Linux Linux kernel>=6.1.141<6.1.144
Linux Linux kernel>=6.6.93<6.6.97
Linux Linux kernel>=6.12.31<6.12.37
Linux Linux kernel>=6.14.9<6.15
Linux Linux kernel>=6.15.1<6.15.6
Linux Linux kernel=6.15
Linux Linux kernel=6.16-rc1
Linux Linux kernel=6.16-rc2
Linux Linux kernel=6.16-rc3
Linux Linux kernel=6.16-rc4
Debian Debian Linux=11.0
Microsoft cbl2 kernel 5.15.186.1-1
Microsoft cbl2 kernel 5.15.186.1-1

Event History

Jul 19, 2025
CVE Published
via MITRE·06:46 AM
Data Sourced
via MITRE·06:46 AM
Description
Data Sourced
via Red Hat·07:01 AM
DescriptionSeverityAffected Software
Data Sourced
via NVD·07:15 AM
RemedyDescriptionSeverityWeaknessAffected Software
Dec 18, 2025
Data Sourced
via Microsoft·01:01 AM
DescriptionSeverityWeaknessAffected Software
Updated
via Microsoft·09:01 AM
DescriptionSeverity
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2025-38350?

CVE-2025-38350 has a severity rating that indicates it may lead to unexpected behaviors in classful queuing disciplines.

2

How do I fix CVE-2025-38350?

To fix CVE-2025-38350, update the Linux kernel to the latest stable version that addresses this vulnerability.

3

What impact does CVE-2025-38350 have on the Linux kernel?

CVE-2025-38350 may cause issues with classful qdiscs potentially leading to performance problems in network traffic scheduling.

4

Is CVE-2025-38350 exploitable remotely?

The exploitability of CVE-2025-38350 typically depends on the specific configuration and deployment of the Linux kernel.

5

Which versions of the Linux kernel are affected by CVE-2025-38350?

CVE-2025-38350 affects specific versions of the Linux kernel that utilize classful queuing disciplines.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203