---
id: CVE-2026-98554
title: 'vlan: ensure sufficient headroom in vlan_dev_hard_header()'
summary: |-
  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 dev…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <
    55e007fc3b4d76fa4d6b4660f6904fe6ab045a1b
  - >-
    Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <
    5aca8e6a8ff6aeae358c1d9b65447aac416ace95
  - >-
    Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <
    4ba1f57313f36a3ce6f77d593548f0c511f34aa1
  - >-
    Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <
    ca797491f0ae4bfde9039f79f6f1ed7781c9110f
  - >-
    Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <
    cfba0f45553de2b803059e3d539a1e418df24da8
  - >-
    Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <
    c7ee4bea64f559ea8e03260014775b64c720cb5b
  - >-
    Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <
    90d51095371d96747f45bbd8504edf6513e039ef
  - >-
    Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 <
    cd5dd68267c4238795fadaf02b3575ca3f8a6500
  - Linux 2.6.12
published: '2026-10-18'
updated: '2026-10-18'
sourceUpdated: '2026-10-18T15:18:21.751Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-98554'
references:
  - url: 'https://git.kernel.org/stable/c/55e007fc3b4d76fa4d6b4660f6904fe6ab045a1b'
  - url: 'https://git.kernel.org/stable/c/5aca8e6a8ff6aeae358c1d9b65447aac416ace95'
  - url: 'https://git.kernel.org/stable/c/4ba1f57313f36a3ce6f77d593548f0c511f34aa1'
  - url: 'https://git.kernel.org/stable/c/ca797491f0ae4bfde9039f79f6f1ed7781c9110f'
  - url: 'https://git.kernel.org/stable/c/cfba0f45553de2b803059e3d539a1e418df24da8'
  - url: 'https://git.kernel.org/stable/c/c7ee4bea64f559ea8e03260014775b64c720cb5b'
  - url: 'https://git.kernel.org/stable/c/90d51095371d96747f45bbd8504edf6513e039ef'
  - url: 'https://git.kernel.org/stable/c/cd5dd68267c4238795fadaf02b3575ca3f8a6500'
tags:
  - cve.org
ingestedAt: '2026-10-18T15:45:12.264Z'
---

## Overview

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.

## Affected

- `Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 55e007fc3b4d76fa4d6b4660f6904fe6ab045a1b`
- `Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 5aca8e6a8ff6aeae358c1d9b65447aac416ace95`
- `Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 4ba1f57313f36a3ce6f77d593548f0c511f34aa1`
- `Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < ca797491f0ae4bfde9039f79f6f1ed7781c9110f`
- `Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < cfba0f45553de2b803059e3d539a1e418df24da8`
- `Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < c7ee4bea64f559ea8e03260014775b64c720cb5b`
- `Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 90d51095371d96747f45bbd8504edf6513e039ef`
- `Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < cd5dd68267c4238795fadaf02b3575ca3f8a6500`
- `Linux 2.6.12`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
