Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2025-38001 PoC — net_sched: hfsc: Address reentrant enqueue adding class to eltree twice

Source
Associated Vulnerability
Title:net_sched: hfsc: Address reentrant enqueue adding class to eltree twice (CVE-2025-38001)
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
Description
CVE-2025-38001: Linux HFSC Eltree Use-After-Free - Debian 12 PoC
Readme
# CVE-2025-38001 (RBTree Family Drama)

**Linux HFSC Eltree Use-After-Free - Debian 12 PoC**

This PoC utilizes a page-level data-only attack based on RBTree transformations to compromise the system. The exploit is portable and works on all kernelCTF instances (LTS 6.6.90, COS 109, COS 105) and Debian 12. On Ubuntu LTS it only requires minor modifications due to Kmalloc Random Caches.

Vulnerability analysis and exploit development: https://syst3mfailure.io/rbtree-family-drama.

![](exploit.gif)

Fixed by commit [ac9fe7dd8e730a103ae4481147395cc73492d786](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ac9fe7dd8e730a103ae4481147395cc73492d786).

# Disclaimer

The exploit provided in this repository is intended for educational purposes only. The author does not condone or support any illegal activities or unauthorized access to systems. Use this information responsibly and only in environments where you have explicit permission to test. The author is not liable for any damages or consequences resulting from the use of this exploit.
File Snapshot

[4.0K] /data/pocs/e0ed2ed14df133afe2e77a0bc1ee3fdeb8ff4998 ├── [ 18K] exploit.c ├── [581K] exploit.gif ├── [ 47] Makefile ├── [5.3K] netlink_utils.h └── [1.0K] README.md 0 directories, 5 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →