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

net/sched: cls_u32: skip hash tables in u32_bind_class()

u32_walk() enumerates both struct tc_u_hnode and struct tc_u_knode
through the walker callback. u32_bind_class() unconditionally casts the
passed fh to tc_u_knode and accesses &n->res, so when fh is actually a
tc_u_hnode, which has no tcf_result member, this results in a
slab-out-of-bounds read of res->classid in tc_cls_bind_class().

The issue can be reproduced with the following commands:

tc qdisc add dev lo root handle 1: hfsc
tc class add dev lo parent 1: classid 1:1 hfsc sc rate 1000kbit
tc filter add dev lo parent 1:1 protocol ip prio 1 u32 match u32 0 0 flowid 1:1
tc class add dev lo parent 1: classid 1:2 hfsc sc rate 2000kbit

Fix this by skipping hash tables via the TC_U32_KEY(handle) check.
Published: 2026-08-26
Score: 7.8 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A flaw in the Linux kernel’s traffic‑control u32 filter causes the kernel to read memory beyond the bounds of a data structure. When the filter handler treats one node type as another, it accesses a non‑existent member and reads the class identifier value from an invalid address. This out‑of‑bounds read can leak kernel memory contents or cause a crash, potentially resulting in denial of service or information disclosure. The impact is dependent on the ability to manipulate traffic‑control rules, which typically requires elevated privileges. The flaw is categorized as a Buffer Overflow error (CWE‑805).

Affected Systems

Linux kernel implementations across all distributions that ship the net/sched:cls_u32 code path are affected. No specific kernel version constraints are listed in the vendor metadata, so any release prior to the repository commit that introduced the fix is potentially vulnerable. Administrators should verify the running kernel version against the patch commit history to determine if remediation is required.

Risk and Exploitability

The EPSS score is not provided, and the vulnerability is not listed in the CISA KEV catalog, so there is no evidence of current exploitation. The vulnerability involves an out‑of‑bounds read (CWE‑805), which carries a moderate risk of causing a kernel crash or leaking data to a privileged attacker. The attack vector is inferred to be local or requires privileged manipulation of traffic‑control filters, as normal network traffic does not directly trigger the faulty code path. The CVSS score of 7.8 indicates high severity, underscoring the need for timely patching to prevent potential denial of service or information disclosure.

Generated by OpenCVE AI on August 27, 2026 at 08:22 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the kernel to a version that includes the u32_bind_class() fix identified by commit 19d114b93c94bdef70496f26685c2a6b242f41b3
  • Delete or rebuild all existing traffic‑control rules that use the u32 filter to remove the vulnerable code path from active use
  • Restrict the ability to modify traffic‑control rules by removing the tc command from the root SUID set or applying fine‑grained privilege controls

Generated by OpenCVE AI on August 27, 2026 at 08:22 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 27 Aug 2026 08:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-805

Thu, 27 Aug 2026 06:15:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Wed, 26 Aug 2026 17:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-805

Wed, 26 Aug 2026 14:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: net/sched: cls_u32: skip hash tables in u32_bind_class() u32_walk() enumerates both struct tc_u_hnode and struct tc_u_knode through the walker callback. u32_bind_class() unconditionally casts the passed fh to tc_u_knode and accesses &n->res, so when fh is actually a tc_u_hnode, which has no tcf_result member, this results in a slab-out-of-bounds read of res->classid in tc_cls_bind_class(). The issue can be reproduced with the following commands: tc qdisc add dev lo root handle 1: hfsc tc class add dev lo parent 1: classid 1:1 hfsc sc rate 1000kbit tc filter add dev lo parent 1:1 protocol ip prio 1 u32 match u32 0 0 flowid 1:1 tc class add dev lo parent 1: classid 1:2 hfsc sc rate 2000kbit Fix this by skipping hash tables via the TC_U32_KEY(handle) check.
Title net/sched: cls_u32: skip hash tables in u32_bind_class()
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-08-27T05:01:00.695Z

Reserved: 2026-08-15T05:44:03.930Z

Link: CVE-2026-74739

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-26T15:16:52.603

Modified: 2026-08-27T06:17:23.220

Link: CVE-2026-74739

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-27T08:30:07Z

Weaknesses

No weakness.