<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-06T09:13:02.317327+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/cve-2026-80925</id>
    <title>CVE-2026-80925 — vlan: fix skb_under_panic and races when toggling HW VLAN offload</title>
    <updated>2026-10-06T09:13:02.403632+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Linux</p>
<p>In the Linux kernel, the following vulnerability has been resolved:</p>
<p>vlan: fix skb_under_panic and races when toggling HW VLAN offload</p>
<p>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-&gt;hard_header_len.</p>
<p>This causes two issues:
1. Lockless TX paths (e.g. packet_snd in af_packet.c, ip6_finish_output2)
   read dev-&gt;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.</p>
<p>Always setting dev-&gt;hard_header_len = real_dev-&gt;hard_header_len and
dev-&gt;needed_headroom = real_dev-&gt;needed_headroom + VLAN_HLEN unconditionally
ensures:
- dev-&gt;hard_header_len remains 100% static and immutable at real_dev-&gt;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-&gt;hard_header_len +
  real_dev-&gt;needed_headroom + VLAN_HLEN).
- vlandev inherits real_dev-&gt;needed_tailroom so underlying trailer/padding/ICV
  requirements are honor…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/cve-2026-80925"/>
  </entry>
</feed>
