CVE-2025-38001

net_sched: hfsc: Address reentrant enqueue adding class to eltree twice

MEDIUM
5.5
CVSS Score
Published: June 6, 2025 at 01:41 PM UTC
Updated: October 15, 2026 at 10:18 PM UTC
2 products affected across 2 vendorsLinux KernelDebian Linux

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.5%
SSVC
No known exploit

Description

In the Linux kernel, the following vulnerability has been resolved: net_sched: hfsc: Address reentrant enqueue adding class to eltree twice Savino says: "We are writing to report that this recent patch (141d34391abbb315d68556b7c67ad97885407547) [1] can be bypassed, and a UAF can still occur when HFSC is utilized with NETEM. The patch only checks the cl->cl_nactive field to determine whether it is the first insertion or not [2], but this field is only incremented by init_vf [3]. By using HFSC_RSC (which uses init_ed) [4], it is possible to bypass the check and insert the class twice in the eltree. Under normal conditions, this would lead to an infinite loop in hfsc_dequeue for the reasons we already explained in this report [5]. However, if TBF is added as root qdisc and it is configured with a very low rate, it can be utilized to prevent packets from being dequeued. This behavior can be exploited to perform subsequent insertions in the HFSC eltree and cause a UAF." To fix both the UAF and the infinite loop, with netem as an hfsc child, check explicitly in hfsc_enqueue whether the class is already in the eltree whenever the HFSC_RSC flag is set. [1] https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=141d34391abbb315d68556b7c67ad97885407547 [2] https://elixir.bootlin.com/linux/v6.15-rc5/source/net/sched/sch_hfsc.c#L1572 [3] https://elixir.bootlin.com/linux/v6.15-rc5/source/net/sched/sch_hfsc.c#L677 [4] https://elixir.bootlin.com/linux/v6.15-rc5/source/net/sched/sch_hfsc.c#L1574 [5] https://lore.kernel.org/netdev/8DuRWwfqjoRDLDmBMlIfbrsZg9Gx50DHJc1ilxsEBNe2D6NMoigR_eIRIG0LOjMc3r10nUUZtArXx4oZBIdUfZQrwjcQhdinnMis_0G7VEk=@willsroot.io/T/#u

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

5.0.1 ≤ v < 5.4.2945.11 ≤ v < 5.15.1855.16 ≤ v < 6.1.1415.5 ≤ v < 5.10.2386.13 ≤ v < 6.14.106.15 ≤ v < 6.15.16.2 ≤ v < 6.6.936.7 ≤ v < 6.12.3237d9cf1a3ce35de3df6f7d209bfb1f50cf188cea5.05.0 rc35.0 rc45.0 rc55.0 rc65.0 rc75.0 rc8
Vendor states this is fixed in 295f7c579b07b5b7cf2dffe485f71cc2f27647cb (fixed)
Vendor states this is fixed in 2c928b3a0b04a431ffcd6c8b7d88a267124a3a28 (fixed)
Vendor states this is fixed in 2f2190ce4ca972051cac6a8d7937448f8cb9673c (fixed)
Vendor states this is fixed in 39ed887b1dd2d6b720f87e86692ac3006cc111c8 (fixed)
Vendor states this is fixed in 4e38eaaabfb7fffbb371a51150203e19eee5d70e (fixed)
Vendor states this is fixed in 6672e6c00810056acaac019fe26cdc26fee8a66c (fixed)
Vendor states this is fixed in a0ec22fa20b252edbe070a9de8501eef63c17ef5 (fixed)
Vendor states this is fixed in ac9fe7dd8e730a103ae4481147395cc73492d786 (fixed)
Vendor states this is fixed in e5bee633cc276410337d54b99f77fbc1ad8801e5 (fixed)
Vendor states this is fixed in 5.0 (unaffected)
Vendor states this is fixed in 5.10.238 (unaffected)
Vendor states this is fixed in 5.15.185 (unaffected)
Vendor states this is fixed in 5.4.294 (unaffected)
Vendor states this is fixed in 6.1.141 (unaffected)
Vendor states this is fixed in 6.12.32 (unaffected)
Vendor states this is fixed in 6.14.10 (unaffected)
Vendor states this is fixed in 6.15.1 (unaffected)
Vendor states this is fixed in 6.16 (unaffected)
Vendor states this is fixed in 6.6.93 (unaffected)

References (12)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/295f7c579b07b5b7cf2dffe485f71cc2f27647cb
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/2c928b3a0b04a431ffcd6c8b7d88a267124a3a28
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/2f2190ce4ca972051cac6a8d7937448f8cb9673c
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/39ed887b1dd2d6b720f87e86692ac3006cc111c8
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/4e38eaaabfb7fffbb371a51150203e19eee5d70e
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/6672e6c00810056acaac019fe26cdc26fee8a66c
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/a0ec22fa20b252edbe070a9de8501eef63c17ef5
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/ac9fe7dd8e730a103ae4481147395cc73492d786

SSVC — Action Prioritization

SSVCNo known exploitNot automatableTotal impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-835

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card