Monitor vulnerabilities like this one. Sign up free to get alerted when software you use is affected.
7.8

CVE-2025-37797: Linux Kernel: HFSC Scheduler Can Crash System

CVE-2025-37797
Summary

A bug in the Linux kernel's traffic controller can cause the system to crash if a specific type of network traffic is handled. This can happen when certain network traffic is being analyzed and modified. To fix this, an additional check has been added to ensure the traffic queue is not empty before making certain changes.

What to do

No fix is available yet. Check with your software vendor for updates.

Affected software
VendorProductAffected versions
linux linux_kernel >= 4.14.1, < 5.4.293
>= 5.5, < 5.10.237
>= 5.11, < 5.15.181
>= 5.16, < 6.1.136
>= 6.2, < 6.6.89
>= 6.7, < 6.12.26
>= 6.13, < 6.14.5
4.14
6.15
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
debian debian_linux 11.0
cpe:2.3:o:debian:debian_linux:11.0:*:*:*:*:*:*:*
Original title
In the Linux kernel, the following vulnerability has been resolved: net_sched: hfsc: Fix a UAF vulnerability in class handling This patch fixes a Use-After-Free vulnerability in the HFSC qdisc cl...
Original description
In the Linux kernel, the following vulnerability has been resolved:

net_sched: hfsc: Fix a UAF vulnerability in class handling

This patch fixes a Use-After-Free vulnerability in the HFSC qdisc class
handling. The issue occurs due to a time-of-check/time-of-use condition
in hfsc_change_class() when working with certain child qdiscs like netem
or codel.

The vulnerability works as follows:
1. hfsc_change_class() checks if a class has packets (q.qlen != 0)
2. It then calls qdisc_peek_len(), which for certain qdiscs (e.g.,
codel, netem) might drop packets and empty the queue
3. The code continues assuming the queue is still non-empty, adding
the class to vttree
4. This breaks HFSC scheduler assumptions that only non-empty classes
are in vttree
5. Later, when the class is destroyed, this can lead to a Use-After-Free

The fix adds a second queue length check after qdisc_peek_len() to verify
the queue wasn't emptied.
nvd CVSS3.1 7.8
Vulnerability type
CWE-416 Use After Free
Published: 2 May 2025 · Updated: 2 Jul 2026 · First seen: 7 Mar 2026