Description
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.
Published: 2026-04-02
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: Remote code execution
Action: Immediate Patch
AI Analysis

Impact

The vulnerability involves a use‑after‑free condition in the clsact traffic‑control qdisc during its initialization and destruction phases. The affected code fails to correctly verify whether the ingress or egress sub‑structures were fully initialized before freeing them. This error can allow an attacker to trigger a kernel memory corruption that may lead to arbitrary code execution with kernel privileges. The weakness is identified as CWE‑416 (Use‑After‑Free).

Affected Systems

This flaw resides in the Linux kernel and affects any distribution that includes the affected kernel code. No specific kernel versions are listed, so all releases prior to the fix commit should be considered vulnerable. The fix was introduced in commit 1cb6f0bae504, which is included in later kernel releases.

Risk and Exploitability

Although no CVSS or EPSS scores are provided, use‑after‑free conditions in kernel code typically carry a high severity rating. The flaw can be exploited by an attacker who can influence the clsact qdisc, for example, by configuring or manipulating the qdisc on a network interface. Successful exploitation could result in a complete compromise of the affected host. Since the flaw is not listed in the CISA KEV catalog and no EPSS data is available, the exact likelihood of exploitation remains unknown, but the potential impact warrants rapid remediation.

Generated by OpenCVE AI on April 2, 2026 at 13:21 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to a kernel version that includes commit 1cb6f0bae504 or later.
  • Verify the current kernel version with uname -r and compare it to the fixed release.
  • If a patch is not immediately available, remove or disable clsact qdisc from interfaces that are not required.
  • Reboot or restart the networking stack after applying the patch or making configuration changes.
  • Monitor system logs for any qdisc or traffic‑control related errors and review for signs of exploitation attempts.

Generated by OpenCVE AI on April 2, 2026 at 13:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 02 Apr 2026 20:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Thu, 02 Apr 2026 12:00:00 +0000

Type Values Removed Values Added
Description 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.
Title clsact: Fix use-after-free in init/destroy rollback asymmetry
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-04-02T11:40:54.384Z

Reserved: 2026-01-13T15:37:46.014Z

Link: CVE-2026-23413

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-04-02T12:16:20.440

Modified: 2026-04-02T12:16:20.440

Link: CVE-2026-23413

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-04-02T20:21:30Z

Weaknesses