CVE-2026-80925 in Linux
Résumé
par VulDB • 09/09/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
vlan : correction de skb_under_panic et des conditions de concurrence lors du basculement de l'accélération matérielle VLAN (HW VLAN offload)
Le basculement de l’accélération TX VLAN matérielle (NETIF_F_HW_VLAN_CTAG_TX ou NETIF_F_HW_VLAN_STAG_TX) sur un périphérique inférieur invoque vlan_transfer_features(), qui modifie dynamiquement vlandev->hard_header_len.
Cela provoque deux problèmes : 1. Les chemins d’émission sans verrouillage (par exemple packet_snd dans af_packet.c, ip6_finish_output2) lisent dev->hard_header_len sans détenir le verrou RTNL. La mutation dynamique de hard_header_len sous RTNL crée une condition de concurrence (race condition) où les couches supérieures réservent un espace insuffisant en tête (headroom) basé sur une valeur obsolète de hard_header_len, entraînant un skb_under_panic lorsque vlan_dev_hard_header() est appelée. 2. De plus, vlan_transfer_features() met à jour hard_header_len sans mettre à jour header_ops, provoquant une incohérence entre l’espace en tête alloué et la création des en-têtes.
La définition systématique de dev->hard_header_len = real_dev->hard_header_len et dev->needed_headroom = real_dev->needed_headroom + VLAN_HLEN garantit : - que dev->hard_header_len reste statique à 100 % et immuable, égal à real_dev->hard_header_len, éliminant ainsi toutes les mises à jour dynamiques en cours d’exécution et les conditions de concurrence sur hard_header_len. - Que les couches supérieures allouant des skbs via LL_RESERVED_SPACE() réservent toujours un espace en tête (headroom) suffisant pour l’insertion du tag VLAN logiciel (real_dev->hard_header_len + real_dev->needed_headroom + VLAN_HLEN). - Que vlandev hérite de real_dev->needed_tailroom, afin que les exigences sous-jacentes relatives aux trailers/remplissages/ICV soient respectées. - Que les décalages d’en-tête réseau AF_PACKET SOCK_RAW restent correctement alignés sur real_dev->hard_header_len. - Que vlan_header_ops soit utilisé de manière systématique.
Note pour les équipes de rétroportage (stable teams) : Assurez-vous de rétroporter ces commits :
e16e960d55a4 ("ipvlan: inherit needed_headroom and needed_tailroom from phy_dev") cef51860becd ("macvlan: inherit needed_headroom and needed_tailroom from lowerdev")
If you want to get best quality of vulnerability data, you may have to visit VulDB.