Skip to main content

Linux Kernel CVE-2026-31684

| EUVDEUVD-2026-25651 MEDIUM
2026-04-25 Linux
5.5
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
vuln.today AI
5.5 MEDIUM

Local vector (AV:L) with low privileges required (PR:L) to access tc-controlled interfaces; only availability impact (kernel crash) with no confidentiality or integrity effect.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
MEDIUM
qualitative
Red Hat
5.5 MEDIUM
qualitative

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

7
Analysis Generated
Jul 24, 2026 - 02:11 vuln.today
CVSS changed
May 06, 2026 - 21:22 NVD
5.5 (MEDIUM)
Patch released
Apr 27, 2026 - 18:32 nvd
Patch available
Patch available
Apr 25, 2026 - 10:16 EUVD
EUVD ID Assigned
Apr 25, 2026 - 09:00 euvd
EUVD-2026-25651
CVE Published
Apr 25, 2026 - 08:47 nvd
N/A
CVE Published
Apr 25, 2026 - 08:47 nvd
MEDIUM 5.5

DescriptionCVE.org

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

net: sched: act_csum: validate nested VLAN headers

tcf_csum_act() walks nested VLAN headers directly from skb->data when an skb still carries in-payload VLAN tags. The current code reads vlan->h_vlan_encapsulated_proto and then pulls VLAN_HLEN bytes without first ensuring that the full VLAN header is present in the linear area.

If only part of an inner VLAN header is linearized, accessing h_vlan_encapsulated_proto reads past the linear area, and the following skb_pull(VLAN_HLEN) may violate skb invariants.

Fix this by requiring pskb_may_pull(skb, VLAN_HLEN) before accessing and pulling each nested VLAN header. If the header still is not fully available, drop the packet through the existing error path.

AnalysisAI

Denial-of-service in the Linux kernel's traffic control act_csum module allows a local low-privileged user to crash the kernel by exploiting missing VLAN header validation in tcf_csum_act(). Systems running any Linux kernel version from the introducing commit through the stable patch releases (pre-6.12.83, pre-6.18.24, pre-6.19.14) and configured with the act_csum tc action on paths carrying nested VLAN-tagged traffic are vulnerable. No public exploit has been identified and EPSS stands at 0.02% (5th percentile), indicating minimal real-world exploitation probability, but the issue is patch-confirmed across multiple stable branches.

Technical ContextAI

The act_csum module (net/sched/act_csum.c) is a Linux Traffic Control (tc) action that recomputes layer-4 checksums (TCP, UDP, ICMP) on packets matched by a tc classifier. When a packet carries in-payload VLAN tags (i.e., VLAN headers that have not been stripped into skb metadata by hardware or the kernel receive path), tcf_csum_act() walks nested VLAN headers by dereferencing a pointer into skb->data to read vlan->h_vlan_encapsulated_proto, then calls skb_pull(VLAN_HLEN) to advance past that header. Critically, this is done without first calling pskb_may_pull(skb, VLAN_HLEN) to guarantee the full VLAN header is present in the skb linear area. If only a fragment of an inner VLAN header is linearized - which can occur with GRO, GSO, or certain receive paths - the dereference reads past the linear area into skb frags, constituting an out-of-bounds read. The subsequent skb_pull() then violates skb invariants, which can lead to a kernel panic or crash. The CWE is not formally assigned in the input, but the root cause class is missing bounds check / improper input validation (analogous to CWE-20 or CWE-125). The fix, present in multiple stable-tree commits at git.kernel.org, adds pskb_may_pull(skb, VLAN_HLEN) before each nested VLAN header access, dropping the packet via the existing error path if the pull fails. CPE cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:* covers all Linux kernel versions.

RemediationAI

The primary fix is upgrading to a patched kernel version in the appropriate stable branch: 6.12.83 for the 6.12.x series, 6.18.24 for 6.18.x, 6.19.14 for 6.19.x, or mainline 7.0. Upstream commits are available at git.kernel.org/stable and linked in the references. Ubuntu users should apply the kernel update referenced in USN-8567-1 (https://ubuntu.com/security/notices/USN-8567-1). Distributions such as Debian, RHEL, SUSE, and others should be monitored for equivalent stable-branch updates. As a compensating control prior to patching, administrators can audit existing tc rules and remove or disable any act_csum actions configured on interfaces that handle nested VLAN-tagged traffic - this eliminates the vulnerable code path entirely. Trade-off: removing act_csum will disable kernel-side checksum recalculation for those flows, potentially causing checksum errors on forwarded or NAT'd traffic if hardware offload does not compensate. Restricting which interfaces and traffic classes are subject to act_csum tc rules (e.g., applying only to non-VLAN interfaces) is a more surgical mitigation.

Vendor StatusVendor

SUSE

Severity: Medium
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise High Availability Extension 15 SP7 Fixed
SUSE Linux Enterprise High Availability Extension 15 SP7 Fixed
SUSE Linux Enterprise High Performance Computing 15 SP7 Fixed

Share

CVE-2026-31684 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy