CVE-2025-37797

Severity CVSS v4.0:
Pending analysis
Type:
CWE-416 Use After Free
Publication date:
02/05/2025
Last modified:
06/11/2025

Description

In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> net_sched: hfsc: Fix a UAF vulnerability in class handling<br /> <br /> This patch fixes a Use-After-Free vulnerability in the HFSC qdisc class<br /> handling. The issue occurs due to a time-of-check/time-of-use condition<br /> in hfsc_change_class() when working with certain child qdiscs like netem<br /> or codel.<br /> <br /> The vulnerability works as follows:<br /> 1. hfsc_change_class() checks if a class has packets (q.qlen != 0)<br /> 2. It then calls qdisc_peek_len(), which for certain qdiscs (e.g.,<br /> codel, netem) might drop packets and empty the queue<br /> 3. The code continues assuming the queue is still non-empty, adding<br /> the class to vttree<br /> 4. This breaks HFSC scheduler assumptions that only non-empty classes<br /> are in vttree<br /> 5. Later, when the class is destroyed, this can lead to a Use-After-Free<br /> <br /> The fix adds a second queue length check after qdisc_peek_len() to verify<br /> the queue wasn&amp;#39;t emptied.

Vulnerable products and versions

CPE From Up to
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.14.1 (including) 5.4.293 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.5 (including) 5.10.237 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 (including) 5.15.181 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (including) 6.1.136 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (including) 6.6.89 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (including) 6.12.26 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.13 (including) 6.14.5 (excluding)
cpe:2.3:o:linux:linux_kernel:4.14:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.14:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.14:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.14:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.14:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.14:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.14:rc7:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.14:rc8:*:*:*:*:*:*