CVE-2025-38001
Plain English Summary
AI-powered analysis for quick understanding
This vulnerability allows an attacker to exploit the Linux kernel's scheduling system to insert a class into a data structure twice, potentially causing the system to enter an infinite loop and prevent packet processing. To take advantage of this, the attacker must use specific configurations with the Hierarchical Fair Service Curve (HFSC) and Token Bucket Filter (TBF) settings.
Technical 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
CVSS Vector Analysis
Vector String
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HExploit Resources
Search for proof-of-concept code and exploit modules
Official References
Quick Information
Published
Jun 6, 2025
10 months ago
Last Modified
Mar 7, 2026
about 1 month ago
Vendor
linux
Product
linux kernel
Related Vulnerabilities
This vulnerability allows an attacker to potentially manipulate memory in the Linux kernel, which could lead to unexpected behavior or crashes in applications using the io_uring interface. It occurs when an old buffer structure is reused improperly after being emptied, which could happen under specific conditions when upgrading buffer settings.
This vulnerability allows an attacker with local access to a Linux system to run malicious code in the kernel, potentially taking control of the system. It occurs due to a flaw in how the kernel handles certain errors, and it affects versions of the Linux kernel up to 5.10.11.
This vulnerability allows a local attacker to potentially take control of the system or corrupt its memory by exploiting a flaw in the way the Linux kernel handles certain operations when a filesystem is being unmounted. To take advantage of this, the attacker must have local access to the system and create a specific type of operation called a futex.