CVE-2026-80925 (GCVE-0-2026-80925)
Vulnerability from cvelistv5 – Published: 2026-09-09 16:19 – Updated: 2026-09-09 16:19
VLAI
EPSS
VEX
Title
vlan: fix skb_under_panic and races when toggling HW VLAN offload
Summary
In the Linux kernel, the following vulnerability has been resolved:
vlan: fix skb_under_panic and races when toggling HW VLAN offload
Toggling hardware VLAN TX offload (NETIF_F_HW_VLAN_CTAG_TX or
NETIF_F_HW_VLAN_STAG_TX) on a lower device invokes vlan_transfer_features(),
which dynamically changed vlandev->hard_header_len.
This causes two issues:
1. Lockless TX paths (e.g. packet_snd in af_packet.c, ip6_finish_output2)
read dev->hard_header_len without holding RTNL lock. Mutating
hard_header_len dynamically under RTNL creates a data race where upper
layers reserve insufficient headroom based on a stale hard_header_len,
resulting in skb_under_panic when vlan_dev_hard_header() is called.
2. In addition, vlan_transfer_features() updated hard_header_len without
updating header_ops, causing a mismatch between allocated headroom
and header creation.
Always setting dev->hard_header_len = real_dev->hard_header_len and
dev->needed_headroom = real_dev->needed_headroom + VLAN_HLEN unconditionally
ensures:
- dev->hard_header_len remains 100% static and immutable at real_dev->hard_header_len,
eliminating all dynamic runtime updates and data races on hard_header_len.
- Upper layers allocating skbs via LL_RESERVED_SPACE() will always reserve
sufficient headroom for software VLAN tag insertion (real_dev->hard_header_len +
real_dev->needed_headroom + VLAN_HLEN).
- vlandev inherits real_dev->needed_tailroom so underlying trailer/padding/ICV
requirements are honored.
- AF_PACKET SOCK_RAW network header offsets remain correctly aligned at
real_dev->hard_header_len.
- vlan_header_ops is used unconditionally.
Note to stable teams: Make sure to backport these commits:
e16e960d55a4 ("ipvlan: inherit needed_headroom and needed_tailroom from phy_dev")
cef51860becd ("macvlan: inherit needed_headroom and needed_tailroom from lowerdev")
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | CPE status | |
|---|---|---|---|---|
| Linux | Linux |
Affected:
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < a29f3b884ba50217e6f50414f568073221e2bb07
(git)
Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < 447cbe95ebb95392b5d8f6a01c0556826919ce23 (git) |
guessed | |
| Linux | Linux |
Affected:
2.6.12
Unaffected: 0 , < 2.6.12 (semver) Unaffected: 7.2.3 , ≤ 7.2.* (semver) Unaffected: 7.3-rc1 , ≤ * (original_commit_for_fix) |
guessed |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/8021q/vlan_dev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a29f3b884ba50217e6f50414f568073221e2bb07",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "447cbe95ebb95392b5d8f6a01c0556826919ce23",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/8021q/vlan_dev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.3",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3-rc1",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvlan: fix skb_under_panic and races when toggling HW VLAN offload\n\nToggling hardware VLAN TX offload (NETIF_F_HW_VLAN_CTAG_TX or\nNETIF_F_HW_VLAN_STAG_TX) on a lower device invokes vlan_transfer_features(),\nwhich dynamically changed vlandev-\u003ehard_header_len.\n\nThis causes two issues:\n1. Lockless TX paths (e.g. packet_snd in af_packet.c, ip6_finish_output2)\n read dev-\u003ehard_header_len without holding RTNL lock. Mutating\n hard_header_len dynamically under RTNL creates a data race where upper\n layers reserve insufficient headroom based on a stale hard_header_len,\n resulting in skb_under_panic when vlan_dev_hard_header() is called.\n2. In addition, vlan_transfer_features() updated hard_header_len without\n updating header_ops, causing a mismatch between allocated headroom\n and header creation.\n\nAlways setting dev-\u003ehard_header_len = real_dev-\u003ehard_header_len and\ndev-\u003eneeded_headroom = real_dev-\u003eneeded_headroom + VLAN_HLEN unconditionally\nensures:\n- dev-\u003ehard_header_len remains 100% static and immutable at real_dev-\u003ehard_header_len,\n eliminating all dynamic runtime updates and data races on hard_header_len.\n- Upper layers allocating skbs via LL_RESERVED_SPACE() will always reserve\n sufficient headroom for software VLAN tag insertion (real_dev-\u003ehard_header_len +\n real_dev-\u003eneeded_headroom + VLAN_HLEN).\n- vlandev inherits real_dev-\u003eneeded_tailroom so underlying trailer/padding/ICV\n requirements are honored.\n- AF_PACKET SOCK_RAW network header offsets remain correctly aligned at\n real_dev-\u003ehard_header_len.\n- vlan_header_ops is used unconditionally.\n\nNote to stable teams: Make sure to backport these commits:\n\ne16e960d55a4 (\"ipvlan: inherit needed_headroom and needed_tailroom from phy_dev\")\ncef51860becd (\"macvlan: inherit needed_headroom and needed_tailroom from lowerdev\")"
}
],
"providerMetadata": {
"dateUpdated": "2026-09-09T16:19:44.748Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a29f3b884ba50217e6f50414f568073221e2bb07"
},
{
"url": "https://git.kernel.org/stable/c/447cbe95ebb95392b5d8f6a01c0556826919ce23"
}
],
"title": "vlan: fix skb_under_panic and races when toggling HW VLAN offload",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80925",
"datePublished": "2026-09-09T16:19:44.748Z",
"dateReserved": "2026-08-26T14:34:25.802Z",
"dateUpdated": "2026-09-09T16:19:44.748Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"nvd": "{\"cve\":{\"id\":\"CVE-2026-80925\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-09-09T17:17:47.763\",\"lastModified\":\"2026-09-09T17:17:47.763\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nvlan: fix skb_under_panic and races when toggling HW VLAN offload\\n\\nToggling hardware VLAN TX offload (NETIF_F_HW_VLAN_CTAG_TX or\\nNETIF_F_HW_VLAN_STAG_TX) on a lower device invokes vlan_transfer_features(),\\nwhich dynamically changed vlandev-\u003ehard_header_len.\\n\\nThis causes two issues:\\n1. Lockless TX paths (e.g. packet_snd in af_packet.c, ip6_finish_output2)\\n read dev-\u003ehard_header_len without holding RTNL lock. Mutating\\n hard_header_len dynamically under RTNL creates a data race where upper\\n layers reserve insufficient headroom based on a stale hard_header_len,\\n resulting in skb_under_panic when vlan_dev_hard_header() is called.\\n2. In addition, vlan_transfer_features() updated hard_header_len without\\n updating header_ops, causing a mismatch between allocated headroom\\n and header creation.\\n\\nAlways setting dev-\u003ehard_header_len = real_dev-\u003ehard_header_len and\\ndev-\u003eneeded_headroom = real_dev-\u003eneeded_headroom + VLAN_HLEN unconditionally\\nensures:\\n- dev-\u003ehard_header_len remains 100% static and immutable at real_dev-\u003ehard_header_len,\\n eliminating all dynamic runtime updates and data races on hard_header_len.\\n- Upper layers allocating skbs via LL_RESERVED_SPACE() will always reserve\\n sufficient headroom for software VLAN tag insertion (real_dev-\u003ehard_header_len +\\n real_dev-\u003eneeded_headroom + VLAN_HLEN).\\n- vlandev inherits real_dev-\u003eneeded_tailroom so underlying trailer/padding/ICV\\n requirements are honored.\\n- AF_PACKET SOCK_RAW network header offsets remain correctly aligned at\\n real_dev-\u003ehard_header_len.\\n- vlan_header_ops is used unconditionally.\\n\\nNote to stable teams: Make sure to backport these commits:\\n\\ne16e960d55a4 (\\\"ipvlan: inherit needed_headroom and needed_tailroom from phy_dev\\\")\\ncef51860becd (\\\"macvlan: inherit needed_headroom and needed_tailroom from lowerdev\\\")\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"net/8021q/vlan_dev.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2\",\"lessThan\":\"a29f3b884ba50217e6f50414f568073221e2bb07\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"1da177e4c3f41524e886b7f1b8a0c1fc7321cac2\",\"lessThan\":\"447cbe95ebb95392b5d8f6a01c0556826919ce23\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"net/8021q/vlan_dev.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"2.6.12\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"2.6.12\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.2.3\",\"lessThanOrEqual\":\"7.2.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.3-rc1\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/447cbe95ebb95392b5d8f6a01c0556826919ce23\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/a29f3b884ba50217e6f50414f568073221e2bb07\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
}
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Loading…
Loading…