-
CVE-2026-80925
- EPSS 0.16%
- Veröffentlicht 09.09.2026 16:19:44
- Zuletzt bearbeitet 03.10.2026 11:17:40
- Erkennungen
vlan: fix skb_under_panic and races when toggling HW VLAN offload
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")Daten sind bereitgestellt durch das CVE Programm von einer CVE Numbering Authority (CNA) (Unstrukturiert).
HerstellerLinux
≫
Produkt
Linux
Default Statusunaffected
Version
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Version <
b38d7a4bc9c17e1d437696da25f9fbc286614d9d
Status
affected
Version
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Version <
b30fe4de285b9bdaf9508740191f69f7cd83b8fa
Status
affected
Version
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Version <
1517d1996b5236fe69eccd9d253f725e06996eb1
Status
affected
Version
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Version <
a29f3b884ba50217e6f50414f568073221e2bb07
Status
affected
Version
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Version <
447cbe95ebb95392b5d8f6a01c0556826919ce23
Status
affected
HerstellerLinux
≫
Produkt
Linux
Default Statusaffected
Version
2.6.12
Status
affected
Version
0
Version <
2.6.12
Status
unaffected
Version <=
6.6.*
Version
6.6.158
Status
unaffected
Version <=
6.12.*
Version
6.12.111
Status
unaffected
Version <=
6.18.*
Version
6.18.51
Status
unaffected
Version <=
7.2.*
Version
7.2.3
Status
unaffected
Version <=
*
Version
7.3-rc1
Status
unaffected
VulnDex Vulnerability Enrichment
| Typ | Quelle | Score | Percentile |
|---|---|---|---|
| EPSS | FIRST.org | 0.16% | 0.049 |
| Quelle | Base Score | Exploit Score | Impact Score | Vector String |
|---|
https://git.kernel.org/stable/c/a29f3b884ba50217e6f50414f568073221e2bb07
https://git.kernel.org/stable/c/447cbe95ebb95392b5d8f6a01c0556826919ce23
https://git.kernel.org/stable/c/1517d1996b5236fe69eccd9d253f725e06996eb1
https://git.kernel.org/stable/c/b30fe4de285b9bdaf9508740191f69f7cd83b8fa
https://git.kernel.org/stable/c/b38d7a4bc9c17e1d437696da25f9fbc286614d9d