CVE-2026-23074
Use-After-Free in Linux Kernel teql Qdisc Due to Root Enforcement Bypass
Publication date: 2026-02-04
Last updated on: 2026-04-03
Assigner: kernel.org
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| linux | linux_kernel | 2.6.12 |
| linux | linux_kernel | 2.6.12 |
| linux | linux_kernel | 2.6.12 |
| linux | linux_kernel | 2.6.12 |
| linux | linux_kernel | 2.6.12 |
| linux | linux_kernel | 6.19 |
| linux | linux_kernel | 6.19 |
| linux | linux_kernel | 6.19 |
| linux | linux_kernel | 6.19 |
| linux | linux_kernel | 6.19 |
| linux | linux_kernel | From 5.11 (inc) to 5.15.199 (exc) |
| linux | linux_kernel | From 5.16 (inc) to 6.1.162 (exc) |
| linux | linux_kernel | From 6.2 (inc) to 6.6.122 (exc) |
| linux | linux_kernel | From 6.7 (inc) to 6.12.68 (exc) |
| linux | linux_kernel | From 6.13 (inc) to 6.18.8 (exc) |
| linux | linux_kernel | 6.19 |
| linux | linux_kernel | From 2.6.12.1 (inc) to 5.10.249 (exc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-416 | The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory "belongs" to the code that operates on the new pointer. |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
This vulnerability exists in the Linux kernel's network scheduler (net/sched) related to the teql queuing discipline (qdisc). The design intent is that teql should only be used as a root qdisc, but this constraint was not properly enforced.
The issue was discovered through a scenario where a root qdisc (QFQ) has two classes: one with a delay (netem) and another using teql. When packets are enqueued and dequeued in a certain order, teql's enqueue operation returns success and activates its class, but its peek operation always returns NULL, preventing dequeue from being called.
Because dequeue is never called, the parent qdisc's visible queue length (qlen) remains zero. When the class's parameters are updated, the qfq scheduler tries to deactivate the class but fails due to the incorrect qlen, leading to freeing pointers while the class is still active.
This results in a use-after-free (UAF) condition when a delayed packet is later processed, causing the kernel to access a dangling pointer.
How can this vulnerability impact me? :
This vulnerability can lead to a use-after-free (UAF) condition in the Linux kernel's network scheduler. Such a flaw can cause system instability, crashes, or potentially allow an attacker to execute arbitrary code with kernel privileges.
Because it involves kernel memory corruption, exploitation could compromise the security and reliability of affected systems, potentially leading to denial of service or privilege escalation.
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:
I don't know
How can this vulnerability be detected on my network or system? Can you suggest some commands?
I don't know
What immediate steps should I take to mitigate this vulnerability?
I don't know