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

net/sched: cls_u32: validate offshift to prevent shift-out-of-bounds

u32_change() copies the user-provided tc_u32_sel.offshift (unsigned char,
0-255) into the kernel knode object without bounds validation. When a
packet later hits u32_classify() with TC_U32_VAROFFSET set, it evaluates
`ntohs(offmask & *data) >> offshift` where the left operand is a 16-bit
value promoted to a 32-bit int. Any offshift >= 32 is undefined behavior
per C11 6.5.7p3, triggerable by an unprivileged user via user/network
namespaces.

UBSAN: shift-out-of-bounds in net/sched/cls_u32.c:236:43
shift exponent 32 is too large for 32-bit type int

Fix this by rejecting offshift >= 16 during filter creation in
u32_change().
Published: 2026-08-15
Score: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Linux kernel’s cls_u32 classifier accepts an offshift value from user space without bounds checking. The value is later used as the shift exponent in a 32‑bit expression during packet classification. When the offshift is 32 or greater, the shift operation triggers undefined behavior that may cause a kernel crash, resulting in a denial of service.

Affected Systems

All Linux kernel images that include the cls_u32 classifier and have not yet applied the patch that rejects offshift values of 16 or more. This includes the default kernel supplied by most distributions. The issue resides in the net/sched subsystem and affects any system that allows unprivileged users to create traffic‑control filters inside network namespaces.

Risk and Exploitability

The CVSS score of 7.8 indicates high severity, but the exploit requires local action by an unprivileged user who can create a u32 filter within a network namespace. The EPSS score of <1% and the absence from CISA KEV suggest a low probability of widespread exploitation. The vulnerability is local; an attacker can inject a malicious u32 filter to trigger undefined behavior, potentially causing a kernel crash. The impact is therefore confined to the affected host’s availability.

Generated by OpenCVE AI on August 21, 2026 at 23:03 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the kernel to include the offshift validation commit (313cb9ffc4101a885d791facf4b5ea3d5e06144d) or later.
  • If an immediate kernel update is not possible, unload the cls_u32 module or disable u32 traffic‑control filters in the affected network namespaces to keep the vulnerable code path from executing.
  • As a temporary measure, restrict unprivileged users from creating tc filters by tightening namespace or ACL policies until the kernel is updated.

Generated by OpenCVE AI on August 21, 2026 at 23:03 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 21 Aug 2026 21:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-680
CWE-732

Fri, 21 Aug 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-1335
References
Metrics threat_severity

None

threat_severity

Moderate


Mon, 17 Aug 2026 06:00: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'}


Sat, 15 Aug 2026 15:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-680
CWE-732

Sat, 15 Aug 2026 12:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: net/sched: cls_u32: validate offshift to prevent shift-out-of-bounds u32_change() copies the user-provided tc_u32_sel.offshift (unsigned char, 0-255) into the kernel knode object without bounds validation. When a packet later hits u32_classify() with TC_U32_VAROFFSET set, it evaluates `ntohs(offmask & *data) >> offshift` where the left operand is a 16-bit value promoted to a 32-bit int. Any offshift >= 32 is undefined behavior per C11 6.5.7p3, triggerable by an unprivileged user via user/network namespaces. UBSAN: shift-out-of-bounds in net/sched/cls_u32.c:236:43 shift exponent 32 is too large for 32-bit type int Fix this by rejecting offshift >= 16 during filter creation in u32_change().
Title net/sched: cls_u32: validate offshift to prevent shift-out-of-bounds
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-17T05:48:31.015Z

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

Link: CVE-2026-74544

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T13:17:59.753

Modified: 2026-08-17T06:19:51.597

Link: CVE-2026-74544

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-15T00:00:00Z

Links: CVE-2026-74544 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-21T23:15:05Z

Weaknesses
  • CWE-1335

    Incorrect Bitwise Shift of Integer