CVE-2025-38001

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

State
Published
Severity
7.8 High
Published
Jun 6, 2025
Updated
Oct 15, 2026
Reserved
Apr 16, 2025

Read the record on cve.org

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

Scores

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 37d9cf1a3ce35de3df6f7d209bfb1f50cf188cea to before e5bee633cc276410337d54b99f77fbc1ad8801e5Affected
  • 37d9cf1a3ce35de3df6f7d209bfb1f50cf188cea to before 6672e6c00810056acaac019fe26cdc26fee8a66cAffected
  • 37d9cf1a3ce35de3df6f7d209bfb1f50cf188cea to before 2c928b3a0b04a431ffcd6c8b7d88a267124a3a28Affected
  • 37d9cf1a3ce35de3df6f7d209bfb1f50cf188cea to before a0ec22fa20b252edbe070a9de8501eef63c17ef5Affected
  • 37d9cf1a3ce35de3df6f7d209bfb1f50cf188cea to before 295f7c579b07b5b7cf2dffe485f71cc2f27647cbAffected
  • 37d9cf1a3ce35de3df6f7d209bfb1f50cf188cea to before 2f2190ce4ca972051cac6a8d7937448f8cb9673cAffected
  • 37d9cf1a3ce35de3df6f7d209bfb1f50cf188cea to before 4e38eaaabfb7fffbb371a51150203e19eee5d70eAffected
  • 37d9cf1a3ce35de3df6f7d209bfb1f50cf188cea to before 39ed887b1dd2d6b720f87e86692ac3006cc111c8Affected
  • 37d9cf1a3ce35de3df6f7d209bfb1f50cf188cea to before ac9fe7dd8e730a103ae4481147395cc73492d786Affected
LinuxLinux
  • 5.0Affected
  • before 5.0Not affected
  • 5.4.294 through 5.4.*Not affected
  • 5.10.238 through 5.10.*Not affected
  • 5.15.185 through 5.15.*Not affected
  • 6.1.141 through 6.1.*Not affected
  • 6.6.93 through 6.6.*Not affected
  • 6.12.32 through 6.12.*Not affected
  • 6.14.10 through 6.14.*Not affected
  • 6.15.1 through 6.15.*Not affected
  • 6.16 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.