CVE-2026-23413CWE-416

CVE-2026-23413

High · published April 2, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
1.7
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

clsact: Fix use-after-free in init/destroy rollback asymmetry

Fix a use-after-free in the clsact qdisc upon init/destroy rollback asymmetry.

The latter is achieved by first fully initializing a clsact instance, and

then in a second step having a replacement failure for the new clsact qdisc

instance. clsact_init() initializes ingress first and then takes care of the

egress part. This can fail midway, for example, via tcf_block_get_ext(). Upon

failure, the kernel will trigger the clsact_destroy() callback.

Commit 1cb6f0bae504 ("bpf: Fix too early release of tcx_entry") details the

way how the transition is happening. If tcf_block_get_ext on the q->ingress_block

ends up failing, we took the tcx_miniq_inc reference count on the ingress

side, but not yet on the egress side. clsact_destroy() tests whether the

{ingress,egress}_entry was non-NULL. However, even in midway failure on the

replacement, both are in fact non-NULL with a valid egress_entry from the

previous clsact instance.

What we really need to test for is whether the qdisc instance-specific ingress

or egress side previously got initialized. This adds a small helper for checking

the miniq initialization called mini_qdisc_pair_inited, and utilizes that upon

clsact_destroy() in order to fix the use-after-free scenario. Convert the

ingress_destroy() side as well so both are consistent to each other.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00119 · 1.7th percentile
Weakness
CWE-416 · Use After Free
Published
2026-04-02T16:16Z
Affected products (13)
ProductVersionsFixed in
linux/linux_kernel≥ 6.6.41, < 6.6.1306.6.130
linux/linux_kernel≥ 6.9.10, < 6.106.10
linux/linux_kernel≥ 6.10.1, < 6.12.786.12.78
linux/linux_kernel≥ 6.13, < 6.18.206.18.20
linux/linux_kernel≥ 6.19, < 6.19.106.19.10
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (5)
EPSS history
Timeline
  • 02 APR 11:40Z
    clsact: Fix use-after-free in init/destroy rollback asymmetry
    cvelistv5