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

vlan: ensure sufficient headroom in vlan_dev_hard_header()

Callers that only reserve ETH_HLEN or less (such as llc_alloc_frame()),
or skbs allocated before dynamic device/headroom changes (e.g. toggling
VLAN_FLAG_REORDER_HDR or bonding/team switching slaves), can reach
vlan_dev_hard_header() with insufficient headroom and trigger
skb_under_panic().

Use skb_cow_head() in vlan_dev_hard_header() when VLAN_FLAG_REORDER_HDR
is not set to ensure sufficient headroom for the VLAN header(s) and the
underlying device hard header.

Use READ_ONCE() to read dev->hard_header_len and dev->needed_headroom as
they can be updated concurrently under RTNL (e.g. in
vlan_transfer_features()) while vlan_dev_hard_header() runs locklessly on
the transmit path. Also avoid LL_RESERVED_SPACE(dev) here so that the
extra HH_DATA_MOD alignment padding does not trigger unnecessary
pskb_expand_head() reallocations on inner stacked VLAN devices after the
outer VLAN header has been pushed.
Published: 2026-10-18
Score: n/a
EPSS: n/a
KEV: No
Impact: Denial of Service (kernel crash)
Action: Patch
AI Analysis

Impact

The defect occurs in the Linux kernel’s VLAN stack where insufficient headroom is not pre‑allocated for VLAN headers. Callers that reserve only the Ethernet header size or skb objects created before dynamic headroom changes may touch vlan_dev_hard_header() with inadequate space, leading the kernel to invoke skb_under_panic(). This behavior can cause a kernel panic and reboot, breaking availability and potentially exposing the system to further attacks if the panic cannot be avoided.

Affected Systems

All versions of the Linux kernel that include the VLAN driver without the described protection are affected. The change was included in later stable releases and the concern applies to configurations that use VLAN stacking, reorder headers, or dynamic device feature toggles such as bonding or team switches.

Risk and Exploitability

Exploitability data is currently unavailable; the CVE is not listed in the CISA KEV catalog, and no EPSS score is provided. However, the nature of the flaw—directly triggering a kernel panic—implies a high potential impact if an attacker can exercise code paths that invoke vlan_dev_hard_header() with insufficient headroom. The vulnerability may be triggerable by local users or processes with network capabilities, so it is prudent to treat it as high risk until the patch is applied. Based on the description, it is inferred that an attacker could trigger the kernel panic by sending crafted packets that cause vlan_dev_hard_header() to run with insufficient headroom, implying a local or network-level attack vector.

Generated by OpenCVE AI on October 18, 2026 at 23:15 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update the kernel to a version that includes the commit adding skb_cow_head() and READ_ONCE() checks in vlan_dev_hard_header()
  • Disable or adjust VLAN filtering features that toggle VLAN_FLAG_REORDER_HDR or alter device headroom while the network stack is active
  • For environments where kernel upgrades are delayed, avoid deploying new VLAN interfaces on devices that rely on the affected code paths until the patch is applied

Generated by OpenCVE AI on October 18, 2026 at 23:15 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 18 Oct 2026 23:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-787

Sun, 18 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: vlan: ensure sufficient headroom in vlan_dev_hard_header() Callers that only reserve ETH_HLEN or less (such as llc_alloc_frame()), or skbs allocated before dynamic device/headroom changes (e.g. toggling VLAN_FLAG_REORDER_HDR or bonding/team switching slaves), can reach vlan_dev_hard_header() with insufficient headroom and trigger skb_under_panic(). Use skb_cow_head() in vlan_dev_hard_header() when VLAN_FLAG_REORDER_HDR is not set to ensure sufficient headroom for the VLAN header(s) and the underlying device hard header. Use READ_ONCE() to read dev->hard_header_len and dev->needed_headroom as they can be updated concurrently under RTNL (e.g. in vlan_transfer_features()) while vlan_dev_hard_header() runs locklessly on the transmit path. Also avoid LL_RESERVED_SPACE(dev) here so that the extra HH_DATA_MOD alignment padding does not trigger unnecessary pskb_expand_head() reallocations on inner stacked VLAN devices after the outer VLAN header has been pushed.
Title vlan: ensure sufficient headroom in vlan_dev_hard_header()
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-10-18T15:18:21.751Z

Reserved: 2026-09-25T10:25:14.356Z

Link: CVE-2026-98554

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:07.490

Modified: 2026-10-18T16:17:07.490

Link: CVE-2026-98554

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-18T23:15:14Z

Weaknesses