CVE-2026-98554

vlan: ensure sufficient headroom in vlan_dev_hard_header()

State
Published
Severity
Not scored
Published
Oct 18, 2026
Updated
Oct 19, 2026
Reserved
Sep 25, 2026

Read the record on cve.org

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.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 55e007fc3b4d76fa4d6b4660f6904fe6ab045a1bAffected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 5aca8e6a8ff6aeae358c1d9b65447aac416ace95Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 4ba1f57313f36a3ce6f77d593548f0c511f34aa1Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before ca797491f0ae4bfde9039f79f6f1ed7781c9110fAffected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before cfba0f45553de2b803059e3d539a1e418df24da8Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before c7ee4bea64f559ea8e03260014775b64c720cb5bAffected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 90d51095371d96747f45bbd8504edf6513e039efAffected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before cd5dd68267c4238795fadaf02b3575ca3f8a6500Affected
LinuxLinux
  • 2.6.12Affected
  • before 2.6.12Not affected
  • 5.10.271 through 5.10.*Not affected
  • 5.15.222 through 5.15.*Not affected
  • 6.1.189 through 6.1.*Not affected
  • 6.6.158 through 6.6.*Not affected
  • 6.12.112 through 6.12.*Not affected
  • 6.18.55 through 6.18.*Not affected
  • 7.2.9 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.