All vulnerabilities
CVE-2026-98554

Linux: vlan: ensure sufficient headroom in vlan_dev_hard_header()

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.21%Chance of exploitation activity in the next 30 days, higher than 10% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in55e007fc3b4d76fa4d6b4660f6904fe6ab045a1bAlso 5aca8e6a8ff6aeae358c1d9b65447aac416ace95, 4ba1f57313f36a3ce6f77d593548f0c511f34aa1 and 1 moreCVE List
Published18 Oct 2026Updated 19 Oct 2026CVE List

What fixes it

  • 55e007fc3b4d76fa4d6b4660f6904fe6ab045a1bLinuxCVE List
  • 5aca8e6a8ff6aeae358c1d9b65447aac416ace95LinuxCVE List
  • 4ba1f57313f36a3ce6f77d593548f0c511f34aa1LinuxCVE List
  • 90d51095371d96747f45bbd8504edf6513e039efLinuxCVE List

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

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.

Text from CVE List

Affected versions 18

  • Linuxaffected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 55e007fc3b4d76fa4d6b4660f6904fe6ab045a1bCVE List
  • Linuxaffected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 5aca8e6a8ff6aeae358c1d9b65447aac416ace95CVE List
  • Linuxaffected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 4ba1f57313f36a3ce6f77d593548f0c511f34aa1CVE List
  • Linuxaffected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before ca797491f0ae4bfde9039f79f6f1ed7781c9110fCVE List
  • Linuxaffected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before cfba0f45553de2b803059e3d539a1e418df24da8CVE List
  • Linuxaffected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before c7ee4bea64f559ea8e03260014775b64c720cb5bCVE List
  • Linuxaffected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 90d51095371d96747f45bbd8504edf6513e039efCVE List
  • Linuxaffected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before cd5dd68267c4238795fadaf02b3575ca3f8a6500CVE List
  • Linuxaffected: 2.6.12CVE List
  • Linuxunaffected: all versions before 2.6.12CVE List
  • Linuxunaffected: 5.10.271 through 5.10.*CVE List
  • Linuxunaffected: 5.15.222 through 5.15.*CVE List
  • Linuxunaffected: 6.1.189 through 6.1.*CVE List
  • Linuxunaffected: 6.6.158 through 6.6.*CVE List
  • Linuxunaffected: 6.12.112 through 6.12.*CVE List
  • Linuxunaffected: 6.18.55 through 6.18.*CVE List
  • Linuxunaffected: 7.2.9 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 8