<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Mon, 02 Nov 2026 20:25:54 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-98570 — net: ipv6: keep room for the mac header in dst_dev_overhead()</title>
      <link>https://db.gcve.eu/vuln/cve-2026-98570</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;net: ipv6: keep room for the mac header in dst_dev_overhead()&lt;/p&gt;
&lt;p&gt;The seg6, ioam6 and rpl lwtunnels size their skb_cow_head() request as
the length they are about to push plus dst_dev_overhead(), then push the
new headers and rebuild the mac header below them with
skb_mac_header_rebuild().  That rebuild needs skb-&amp;gt;mac_len of headroom,
but dst_dev_overhead() leaves LL_RESERVED_SPACE() of the egress device,
16 bytes for plain Ethernet.&lt;/p&gt;
&lt;p&gt;Where the mac header is longer than that, as it is on ingress through a
VLAN device with reorder_hdr off, the rebuild runs out of room:
skb_set_mac_header(skb, -skb-&amp;gt;mac_len) computes a negative offset,
stores it unchecked in the u16 skb-&amp;gt;mac_header, and the memmove that
follows writes skb-&amp;gt;mac_len bytes about 64 KB past skb-&amp;gt;head.
Forwarding plain ping6 traffic through such a device reproduces it on
all five seg6 encapsulation modes and on the rpl and ioam6 inline paths;
skb-&amp;gt;mac_header comes back as 65534 on a 704-byte head.&lt;/p&gt;
&lt;p&gt;Return the larger of the two.  The helper already returns skb-&amp;gt;mac_len
when it has no dst, so this only makes the other branch agree, and it
covers every caller rather than each call site in turn.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;net: ipv6: keep room for the mac header in dst_dev_overhead()&lt;/p&gt;
&lt;p&gt;The seg6, ioam6 and rpl lwtunnels size their skb_cow_head() request as
the length they are about to push plus dst_dev_overhead(), then push the
new headers and rebuild the mac header below them with
skb_mac_header_rebuild().  That rebuild needs skb-&amp;gt;mac_len of headroom,
but dst_dev_overhead() leaves LL_RESERVED_SPACE() of the egress device,
16 bytes for plain Ethernet.&lt;/p&gt;
&lt;p&gt;Where the mac header is longer than that, as it is on ingress through a
VLAN device with reorder_hdr off, the rebuild runs out of room:
skb_set_mac_header(skb, -skb-&amp;gt;mac_len) computes a negative offset,
stores it unchecked in the u16 skb-&amp;gt;mac_header, and the memmove that
follows writes skb-&amp;gt;mac_len bytes about 64 KB past skb-&amp;gt;head.
Forwarding plain ping6 traffic through such a device reproduces it on
all five seg6 encapsulation modes and on the rpl and ioam6 inline paths;
skb-&amp;gt;mac_header comes back as 65534 on a 704-byte head.&lt;/p&gt;
&lt;p&gt;Return the larger of the two.  The helper already returns skb-&amp;gt;mac_len
when it has no dst, so this only makes the other branch agree, and it
covers every caller rather than each call site in turn.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-98570</guid>
    </item>
  </channel>
</rss>
