CVE-2026-31684
Received Received - Intake
Out-of-Bounds Read in Linux Kernel VLAN Header Processing

Publication date: 2026-04-25

Last updated on: 2026-04-27

Assigner: kernel.org

Description
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.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-04-25
Last Modified
2026-04-27
Generated
2026-05-07
AI Q&A
2026-04-26
EPSS Evaluated
2026-05-05
NVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
linux_kernel linux_kernel *
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?

This vulnerability exists in the Linux kernel's network scheduler checksum action (act_csum). The function tcf_csum_act() processes nested VLAN headers by reading data directly from the packet buffer (skb->data) without first verifying that the entire VLAN header is present in the linear portion of the buffer.

Specifically, it reads the h_vlan_encapsulated_proto field and then pulls VLAN_HLEN bytes without ensuring the full VLAN header is available. If only part of the inner VLAN header is linearized, this can cause the code to read beyond the linear area, potentially violating skb buffer invariants.

The fix requires checking with pskb_may_pull(skb, VLAN_HLEN) before accessing and pulling each nested VLAN header. If the full header is not available, the packet is dropped through an existing error path.


How can this vulnerability impact me? :

This vulnerability can lead to improper handling of network packets with nested VLAN headers, potentially causing the kernel to read beyond the intended memory area in the packet buffer.

Such out-of-bounds reads may violate kernel memory safety invariants, which could result in kernel instability, crashes, or other unpredictable behavior.

While the description does not explicitly mention exploitation scenarios, memory safety violations in the kernel can sometimes be leveraged for denial of service or privilege escalation.


What immediate steps should I take to mitigate this vulnerability?

The vulnerability is resolved by ensuring that the Linux kernel code validates nested VLAN headers properly by requiring pskb_may_pull(skb, VLAN_HLEN) before accessing and pulling each nested VLAN header.

To mitigate this vulnerability immediately, update your Linux kernel to a version that includes this fix, as it prevents reading past the linear area and dropping malformed packets safely.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart